浮点数标准IEEE754(读法:I tripleE 754)

在IEE754当中,阶码是用移码的方式表示的,移码只能用于表示整数,而阶码也必须是整数

回顾(移码:补码的基础上将符号位取反)

移码的定义:移码=真值+偏置值

大致流程:

用二进制来写出要表示的那个数的真值,进行加减操作前,真值需要转化为补码,然后再加上一个所谓的偏置值

例:求出-127所对应的的移码,具体步骤如下:

  1. 先用二进制表示出-127的真值-1111111B
  2. 在计算机内部,所有带符号整数的加减法运算都要先转化为补码,因此在进行真值和偏置值的相加运算之前,应该把真值转换为对应的补码
  3. 对于-1111111
  4. 原码:11111111 反码:1000000 补码:10000001
  5. 然后加上规定的偏置值【规定移码为8位,偏置值就等于2^(n-1)】2的8-1次方得128,偏置值也用二进制表示为10000000
  6. 将真值对应的补码与偏置值进行相加运算得到对应的移码
  7. 10000001+10000000=00000001(溢出来一个1,舍弃)

例:求出-3对应的移码,具体步骤如下:

  1. 先用二进制表示-3的真值,得到-11B
  2. 求出-11B对应的补码
  3. 原码10000011(因为表示的是整数,并且移码的位数是8位,因此需要在符号位后面补上五个0)反码:11111100补码:11111101
  4. 然后加上规定的偏置值【规定移码为8位,偏置值就等于2^(n-1)】2的8-1次方,偏置值也用二进制表示为10000000
  5. 将真值对应的补码与偏置值进行相加运算得到对应的移码
  6. 11111101+10000000=01111101(溢出一个1,舍弃)

当我们在确定一个移码的表示方案时,首先要确定的是一个偏置值。

为啥移码遵循在补码的基础上将符号位取反呢?

因为,偏置值一般取2^(n-1),此时移码=补码符号位取反

当然偏置值也可以取其他值

IEEE754遵循的就是偏置值为2^(n-1)-1,如果是8位移码,偏置值就是2^(8-1)-1=127。

这种方案对应的所有移码可以由偏置值为128对应的移码-1得到。

对图像进行分析:

数符表示了整个浮点数的正负性

阶码全1对应的是-128,阶码全0对应的是-127(在表示范围时具有特殊作用)

偏置值等于2的n-1次方-1,这里的n就是阶码的位数,在IEEE754当中,阶码位数固定是8

E-127中的E是用十进制表示的阶码

对于一个浮点数来说,如果它的尾数是用原码来表示的,我们希望它的第一个有效的数值位是1,所以我们就默认在尾数之前隐藏了一个最高位1(这样做就不用再去规格化处理了),因此虽然规定浮点数尾数是23位,但实际上是有24位的,只不过隐藏了最高位的1,1.M才是尾数表示的真正数值。

数符位、阶码位、尾数数值位各占多少位考试当中是不会说的,需要记住。

在进行移码-偏移量的操作中,可以把移码和偏移量看作是无符号数(就是把这些二进制数转化为十进制数再来进行减法操作)

例:将十进制-0.75转换为IEEE754的单精度浮点格式表示。

首先单精度浮点格式满足1+8+23的格式

把-0.75转换为二进制的形式:-0.11,由于尾数部分隐藏表示最高位为1,所以需要对-0.11进行规格化→-1.1X2^-1(X2^-1表示小数点要前移一位),这样就完成了规格化处理。

由于这个数是负数,所以数符取1

尾数部分=.1000000......第一位是1,后面全部都是0,凑够23位(隐含最高位1,补上这个1的话就变成了1.1000000......,和规格化后得到的二进制数一致)

阶码真值=-1(2的-1次方中的-1)

最后我们将得到的数符、用移码表示的阶码、尾数数值结合在一起就得到了用IEEE754单精度浮点数格式表示的十进制数-0.75

1 01111110 10000000000000000000000

例:IEEE754的单精度浮点数C0A00000H的值是多少? 

先把16进制转换为2进制

王道机组笔记IEEE754相关推荐

  1. 【数据结构】24王道考研笔记——栈、队列和数组

    三.栈.队列和数组 目录 三.栈.队列和数组 栈 基本概念 顺序栈 链式栈 队列 基本概念 顺序存储 链式存储 双端队列 应用 括号匹配 前中后缀表达式 栈在递归中的运用 队列的运用 数组 数组的存储 ...

  2. 23王道考研笔记--c语言基础入门

    第一章.开发环境搭建及调试窗口设置 1.1第一个代码helloworld! #include <stdio.h>//printf #include <stdlib.h>//sy ...

  3. 2022王道数据结构笔记

    第二章 线性表 2.1 线性表的定义和基本操作 要点: 线性表的基本操作--创销.增删.改查 传入参数时,何时要用引用 & 2.2 线性表的顺序表示 2.2.1 顺序表的定义 顺序表的实现-- ...

  4. 数据链路层(王道视频笔记)

    第三章 数据链路层 文章目录 第三章 数据链路层 前言 3.1.1 数据链路层功能 数据链路层的研究思想 数据链路层的基本概念 数据链路层功能概述 3.2.1 封装成帧和透明传输 封装成帧 透明传输 ...

  5. 【王道操作系统笔记】进程的状态与转换

    进程是程序的一次执行,在执行的过程中,有时进程正在被CPU处理,有时需要等待CPU服务,可见,进程的状态是会有变化的. 进程的状态: 运行态:占有CPU,已经在CPU上运行 在单核处理机环境下,每一时 ...

  6. 【王道操作系统笔记】进程定义组成组织方式特征

    进程定义 程序:指令序列 内存中同时放入多道程序,各个程序的代码,运算数据存放的位置不同. 系统在每个程序执行之间,会在内存创建一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息(如程序代 ...

  7. 【王道操作系统笔记】系统调用

    什么是系统调用? 系统调用时操作系统提供给应用程序(编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务. 有何作用? 系统中的共享资源都由 ...

  8. 【王道操作系统笔记】操作系统的运行机制和体系结构

    指令:CPU能够识别和执行的最基本的命令(加减乘除,内存) 特权指令:不允许用户程序使用,如内存清理指令 非特权指令:如运算指令 CPU如何判断当前是否可以执行特权指令? 两种处理器状态: 用户态(目 ...

  9. 【王道操作系统笔记】操作系统的发展和分类

    重点理解各阶段的优点和缺点.各阶段的主要优点都是解决了上一阶段的主要缺点. 手工操作系统: 主要缺点:用户独占全机,人机速度矛盾导致资源利用率极低. 批处理阶段: 单道批处理系统 引入脱机输入/输出的 ...

最新文章

  1. Codeforces 854 C Planning 贪心 最大堆
  2. Redis配置文件中的三个参数
  3. c语言自增自减5运算符详解,巧用C语言中的自增自减运算符
  4. MybatisPlus入门之介绍
  5. mini2440_x35 ubuntu下使用dnw进行传送文件
  6. 完整HTML实例网页代码(1)
  7. java docx4j 使用教程_docx4j深入学习整理
  8. python合并两个txt列_python如何将两个txt文件内容合并
  9. 学计算机拼音不好怎么办,孩子拼音基础差怎么办?告诉你学拼音技巧!
  10. python虚拟变量回归_第二周:python实现线性回归(哑变量回归)的高效方法
  11. n维随机变量的分布函数和独立性
  12. HTML5 视频网站
  13. http://free.logomaker.cn/tools/icoMaker.aspxICO图标在线制作 -- 为你的网站/软件制作图标(ICO)
  14. 开篇的个人感想和想法
  15. matlab导入word数据,matlab导入word
  16. Java树状图展示的实现
  17. 一个可以截取其他App素材的办法Visual Studio Code
  18. Eclipse各版本代号一览表以及官网上有很多版本的eclipse,下载哪个版本比较合适呢?
  19. 使用IDEA制作Java面向对象小游戏《原谅帽大作战》
  20. java3d立方体_java3d 立方体 加载纹理

热门文章

  1. mac mini调整屏幕亮度
  2. Android Studio 连接阿里云数据库【制作基于数据库的多人远程聊天APP】
  3. gentoo问题汇总
  4. 一个优秀的团队,就该这样定目标
  5. python win32api键盘_pythonwin32api键盘输入教程
  6. 2021年全球支付现状及发展趋势分析:亚太电子商务数字支付将超过3.1万亿美元[图]
  7. JavaScript实现图结构
  8. jquery下载所有版本(实时更新)
  9. html怎么放边框,html怎么设置边框
  10. SZA-Template