3、对于E(指数)E是一个字节(8位)整数所以E的取值范围为(0~ 255),但是在计数中指数是可以为负的,所以规定在存入E时,在它原本的值上加上中间数(127),在使用时减去中间数(127),这样E的真正取值范围就成了(-127~128) 。
因此对于32为单精度浮点数:在IEEE-754标准中,32位浮点数X的真值可表示为:
X = (-1)^S×(1.M)×2 ^(E-127);
精度丢失了解了float型数据的存储原理,接下来了解一下float精度丢失的原因,以浮点数2.7为例:
首先,十进制转换成二进制 。由于2.7无法用二进制精确表示,因此此处出现一次精度丢失 。
2.7 => 10.10110011001…
然后,用IEEE标准表示二进制浮点数,得到s=0,M=1.010110011001…,E=1 。
10.1011001… => (-1)^0 × 1.01011001… × 2^1
最后,按照IEEE标准保存数据 。此时是单精度浮点数,M只能保存小数点后23位,多余的部分被丢弃了,因此此处又一次精度丢失 。

精度丢失示意
溢出既然存储有位数限制,那么溢出就很好理解了 。超过最大能表示的数就是上溢,超过最小能表示的数就是下溢,只要计算出最大和最小能表示的数十多大就可以得出上下溢出的极限:
上溢极限:

上溢极限
下溢极限:

【c语言float四舍五入 float型保留几位小数和有效数字】下溢极限
推荐阅读
- c语言退出程序命令exit c语言exit函数用法
- JAVA开发语言介绍 java语言概述题库
- c语言圆的面积编程 c语言阶乘函数怎么写
- python教程 疯狂的python建议怎么样
- 说话技巧和应变能力的书 看什么书可以提高语言表达能力?
- 质量效应传奇版有中文吗 质量效应传奇版语言选项一览
- 足球经理2021语言强化怎么看 足球经理2021语言强化训练详解
- 游戏王大师决斗有中文吗 游戏语言介绍
- 圣女战旗社交的语言声望及经费一览 各角色声望是多少
- 伊苏9steam中文有吗 伊苏9steam语言介绍
