5.浮点数的几种特殊情况

(1)0的表示 
对于阶码为0或255的情况,IEEE754标准有特别的规定: 
如果 阶码E 是0 并且尾数M 是0,则这个数的真值为±0(正负号和数符位有关)。

因此+0的机器码为:0 00000000 000 0000 0000 0000 0000。 
-0的机器码为:1 00000000 000 0000 0000 0000 0000。

(2) +∞ 和 −∞ 的表示 
如果 阶码E = 255 并且尾数M全是0,则这个数的真值为±∞(同样和符号位有关)。 
因此+∞的机器码为:0 11111111 000 0000 0000 0000 0000。 
-∞的机器吗为:1 11111111 000 0000 0000 0000 0000。

(3)NaN(Not a Number) 
如果 E = 255 并且 M 不是0,则这不是一个数(NaN)。

6.浮点数的精度和数值范围

6.1浮点数的数值范围

根据上面的探讨,浮点数可以表示-∞到+∞,这只是一种特殊情况,显然不是我们想要的数值范围。

以32位单精度浮点数为例,阶码E由8位表示,取值范围为0-255,去除0和255这两种特殊情况,那么指数e的取值范围就是1-127=-126到254-127=127。

(1)最大正数 
因此单精度浮点数最大正数值的符号位S=0,阶码E=254,指数e=254-127=127,尾数M=111 1111 1111 1111 1111 1111,其机器码为:0 11111110 111 1111 1111 1111 1111 1111。

那么最大正数值:

PosMax=(−1)S×1.M×2e=+(1.11111111111111111111111)×2127≈3.402823e+38

这是一个很大的数。

(2)最小正数 
最小正数符号位S=0,阶码E=1,指数e=1-127=-126,尾数M=0,其机器码为0 00000001 000 0000 0000 0000 0000 0000。

那么最小正数为:

PosMin=(−1)S×1.M×2e=+(1.0)×2−126≈1.175494e−38

这是一个相当小的数。几乎可以近似等于0。当阶码E=0,指数为-127时,IEEE754就是这么规定 1.0×2−127 近似为0的,事实上,它并不等于0。

(3)最大负数 
最大负数符号位S=1,阶码E=1,指数e=1-127==-126,尾数M=0,机器码与最小正数的符号位相反,其他均相同,为:1 00000001 000 0000 0000 0000 0000 0000。

最大负数等于:

NegMax=(−1)S×1.M×2e=−(1.0)×2−126≈−1.175494e−38

(4)最小负数 
符号位S=0,阶码E=254,指数e=254-127=127,尾数M=111 1111 1111 1111 1111 1111,其机器码为:1 11111110 111 1111 1111 1111 1111 1111。

计算得:

NegMin=(−1)S×1.M×2e=+(1.11111111111111111111111)×2127=−3.402823e+38

6.2浮点数的精度

说道浮点数的精度,先给精度下一个定义。浮点数的精度是指浮点数的小数位所能表达的位数。

阶码二进制位数决定浮点数的表示范围,尾数二进制位数表示浮点数的精度。以32位浮点数为例,尾数域有23位。那么浮点数以二进制表示的话精度是23位,将0.000 0000 0000 0000 0000 0001转化为十进制等于 1223=0.00000011920928955078125 。所以,以十进制的精度为6位。

64位双精度浮点数的尾数域52位,同理可得,双精度浮点数的十进制的精度为 1252=2.2204460492503130808472633361816e−16 ,所以十进制的双精度浮点数的精度为15位。

转载自:http://blog.csdn.net/k346k346/article/details/50487127

IEEE754 详点相关推荐

  1. IEEE754详解(最详细简单有趣味的介绍)

    序言:        博主个人认为本系列文章是目前博主看过的介绍"IEEE754",即浮点数的机器存储的最好的文章.        它比白中英老师的<计算机组成原理>, ...

  2. go语言基础之浮点数

    go语言基础之浮点数 这里写目录标题 go语言基础之浮点数 小数的浮点表示法 IEEE754标准 32位单精度浮点数在内存中的存储方式 符号位: sign ,即图中蓝色的方块 偏移后的指数位: bia ...

  3. IEEE754浮点数格式详解

    IEEE754浮点数格式详解 几乎所有计算机都支持二进制数据表示,即能直接识别二进制数据表示并具有相应的指令系统.通常采用的二进制定点数据表示主要有:符号数值.反码.补码以及带偏移增值码四种形式,其中 ...

  4. 2.3 《计算机组成原理》之浮点数的表示(基本格式、规格化[左规右规]、表示范围、IEEE754标准详解)

    文章目录 0.思维导图 1.基本格式 2.规格化 3.表示范围 4.IEEE754标准 0.思维导图 1.基本格式 举个例子: 2.规格化 3.表示范围 运算结果大于最大正数时称为正上溢,小于绝对值最 ...

  5. 浮点数修约的法则c语言,IEEE754浮点表示法详解

    前言 IEEE754是IEEE二进制浮点算术标准.这个标准定义了表示浮点数的常规值与非规格化值(denormal number),一些特殊值(infinity)和非数值(NaN), 以及这些数值的浮点 ...

  6. IEEE754标准表示浮点数(详解)

    目录 1.IEEE754标准格式 2.IEEE754标准中的符号码 3.IEEE754标准中的阶码 4.IEEE754标准中的尾数 5.IEEE754标准的真值计算 6.十进制转化成IEEE754标准 ...

  7. IEEE-754单精度浮点类型详解(完结篇)

    IEEE-754工业标准 前言 众所周知,计算机内部系统实际只能存储二进制数据,我们在计算机中所使用到的文档.图片.影音等数据,实际都是以二进制的数据形式存放在计算机的内存或者硬盘中,不管内存(内存条 ...

  8. IEEE-754 64位双精度浮点数存储详解

    IEEE-754双精度浮点数 IEEE二进制浮点数算术标准(IEEE 754)规定了四种表示浮点数值的方式:单精确度(32位).双精确度(64位).延伸单精确度(43比特以上,很少使用)与延伸双精确度 ...

  9. IEEE754数据转换详解

    IEEE二进制浮点数算术标准(IEEE 754)是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用.这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denorma ...

最新文章

  1. 吴恩达Coursera机器学习 - Chapter 4 多变量线性回归
  2. 2020年python工资一般多少钱-2020年Python发展前景如何呢?
  3. Homebrew常用命令
  4. webView 点击连接如何不让跳转到系统的 浏览器
  5. PyQt5 技术篇-设置窗口置顶不生效问题原因,setWindowFlags()设置参数后不生效解决办法
  6. python发邮件主机找不到_Python 使用QQ邮箱发邮件
  7. 【微信开发】上传下载多媒体文件
  8. DropDownList and ListBox 两级联动菜单
  9. (56)FPGA条件选择有优先级(case)
  10. 自定义标签的使用jsp实例_JSP自定义标签示例教程
  11. 掌握好这几点方法学习Linux,一定比别人更快入门运维!
  12. html小作业--新闻栏目
  13. 不知道怎么把英文文档翻译成中文?手把手教你怎么操作
  14. 无线局域网和蜂窝移动网络_干货!无线AP覆盖系统解决方案
  15. Shell习题100例(2)
  16. 设置电子围栏 高德地图_Android 高德地图的使用, 根据手势拖动绘制电子围栏
  17. 合肥工业大学计算机信息检索报告,合肥工业大学计算机信息检索(图书馆资源利用)作业.doc...
  18. solidworks创新作业无限魔方
  19. 1004.选择结构习题:奇偶数判断
  20. 【搜索入门专题1】hdu1253 【BFS】 F - 胜利大逃亡

热门文章

  1. mysql big tables_mysql常见命令操作
  2. 大话人机混合智能中深度情境意识
  3. Java中方法调用完之后,原来的数改变吗?
  4. 基于Contiki OS的智能led照明:LIFX
  5. pipeline设计模式
  6. 西子子1200与编码器
  7. 物联网概论(IoT)_Chp10 智慧地球与物联网应用/M2M/共享单车/无人驾驶
  8. 【CSS】线性渐变、径向渐变
  9. 计算机考博方向数学,2016华中科技大学考博:计算机数学考试大纲
  10. robocode调试技巧