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

Floating point IEEE-754 32位(单精度)指数-126而不是-127,floating-point,ieee-754,Floating Point,Ieee 754,我知道如果我有这样一个数字: 1 | 1001 0001 | 0011 0011 0000 0001 0101 000 1 sign bit | 8 bit biased exponent | 23 bit fraction/mantissa 0 | 0000 0000 | 0000 0000 0000 0000 0000 001 我可以通过从偏差指数减去偏差127(0111111)来计算“真实”指数。即1001 0001-01111 1111=10010(因此实际指数为18)

我知道如果我有这样一个数字:

1 | 1001 0001 | 0011 0011 0000 0001 0101   000 
1 sign bit | 8 bit biased exponent | 23 bit fraction/mantissa
0 | 0000 0000 | 0000 0000 0000 0000 0000   001 
我可以通过从偏差指数减去偏差127(0111111)来计算“真实”指数。即1001 0001-01111 1111=10010(因此实际指数为18)

10011 0011 0000 0001 0101 000*2^18

现在我的问题是:

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

1 | 1001 0001 | 0011 0011 0000 0001 0101   000 
1 sign bit | 8 bit biased exponent | 23 bit fraction/mantissa
0 | 0000 0000 | 0000 0000 0000 0000 0000   001 
为什么指数是-126而不是-127?0000 0000-0111111应为-127而非-126,以便

000000000 0001*2^-126而非000000000 0001*2^-127


感谢并致以最诚挚的问候

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

(−1) 符号位×2−126×0.5位有效位


有关更多详细信息,请参阅。

但为什么是-126而不是-127@knowledge所以法线和非法线之间没有差距。最小的标准化值的指数值为1,转换为2^-126,并且在有效位中有一个隐含的前导1。因此,该值为2^-126*1.0。最大的非正态值在有效位中有一个隐含的前导0,其值为2^-126*0.11111111。