IEEE-754 32位(单精度)指数-126而不是-127

时间:2017-10-13 14:30:13

标签: floating-point ieee-754

我知道我是否有这样的数字:

1 | 1001 0001 | 0011 0011 0000 0001 0101   000 
1 sign bit | 8 bit biased exponent | 23 bit fraction/mantissa

我可以通过从偏置指数中减去偏差127(0111 1111)来计算“实数”指数。即1001 0001 - 0111 1111 = 10010(因此实数指数为18)

1,0011 0011 0000 0001 0101 000 * 2 ^ 18

现在我的问题是:

如果a有这样的(非规范化)数字:

0 | 0000 0000 | 0000 0000 0000 0000 0000   001 

为什么指数是-126而不是-127? 0000 0000 - 0111 1111应为-127而不是-126,以便

0,0000 0000 0000 0000 0000 0001 * 2 ^ -126而非0,0000 0000 0000 0000 0000 0001 * 2 ^ -127

谢谢和最好的问候

1 个答案:

答案 0 :(得分:3)

非规范化单精度浮点数的隐式指数为2 -126

( - 1) signbit ×2 -126 ×0.significandbits

有关详细信息,请参阅https://en.wikipedia.org/wiki/Single-precision_floating-point_format