1
akira 2016-09-24 18:17:03 +08:00
那个,你用计算器算下 2 ^ (-127) 是多少?
|
2
skydiver 2016-09-24 18:31:06 +08:00
( 2 ) E 全为 0 。这时,浮点数的指数 E 等于 1-127 (或者 1-1023 ),有效数字 M 不再加上第一位的 1 ,而是还原为 0.xxxxxx 的小数。这样做是为了表示±0 ,以及接近于 0 的很小的数字。
你漏掉了指数 E 为 0 的特殊情况。 |
3
skydiver 2016-09-24 18:33:05 +08:00 1
@skydiver 所以最小的大于 0 的数就变成了
2^(-22) * 2^(-127) = 2^(-149) = 1.401298E-45 |
4
YuJianrong 2016-09-24 23:01:13 +08:00
@skydiver subnormal 形态是 0.xxx 主要原因是为了避免数字在下降过程中突然降到 0 ,不是为了±0 的表示。
https://zh.wikipedia.org/wiki/IEEE_754#.E9.9D.9E.E8.A7.84.E7.BA.A6.E5.BD.A2.E5.BC.8F.E7.9A.84.E6.B5.AE.E7.82.B9.E6.95.B0 |
5
Newyorkcity OP |
6
YuJianrong 2016-09-25 19:31:34 +08:00 via iPhone
@Newyorkcity 0.x 的模式叫 subnormal 模式的浮点数,你可以去查一下 IEEE754 标准的浮点数定义
|