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。