在IEEE754中阶码E=e+127,与阶码用移码表示不一样啊?

如题所述

首先明确一点在脑子里面:用移码表示阶码和用IEEE754标准表示阶码是两回事,IEEE754标准中表示阶码的偏移值是127,而移码表示阶码时偏移值是128
其次为什么是127:当阶码E为全0且尾数M也为全0时,表示的真值X为零,结合符号位S为0或1,有正零和负零之分。当阶码E为全1且尾数M也为全0时,表示的真值X为无穷大(∞),结合符号位S为0或1,有+∞和-∞之分。这样,在32位浮点数表示中,要除去E用全0和全1(255)表示零和无穷大的特殊情况,因此,阶码E的取值范围变为1~254,指数的偏移量不选128(10000000B),而选127(01111111B)。对于32位规格化浮点数,真正的指数值e为-126~+127,因此,数的绝对值的范围是2-126~2127≈10-38~1038。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-18
通常把一个真值表示成0.1xxxxxxxx 乘以2的e次方,阶码变成移码是e+128;
ieee754中表示为1.xxxxxxx 乘以2的e+127次方,实际上就是把尾数左移1位,阶码-1,格式上把尾数中的第一个1隐藏,与原来的真值大小没有改变。
第2个回答  2011-09-14
的确是不一样的,我也曾困扰过。
推荐你按规定来吧,不要纠结,用阶码的真值加上偏移量就行了。
第3个回答  推荐于2018-03-10
我的想法是,因为计算机在运行时标准最好统一,然后如果采用加128的话,这样会导致符号位的二义性,所以为了保证符号位的标准尽可能的统一采用了这个127而不是128本回答被网友采纳
第4个回答  2022-05-11

阶码 E = 指数 e + 偏移量。

偏移量,为什么是 127?

IEEE754 中规定:

 当阶码 E 为全 0,且尾数M 也为全 0 时,表示数值 X = ±0。

 当阶码 E 为全 1,且尾数M 也为全 0 时,表示数值 X 为 ±∞。

---------------------

那么,当数值 X 非零也非无穷大时,

 阶码 E 的取值,就必须在范围内:1~254。

但是,X 的指数 e 是补码,范围是:-128~127。

对比一下,偏移量,真不好选!

 如果选 128,指数 e 中的-128、+127 就不能用了。

 如果选 127,指数 e 中的-128、-127 就不能用了。

否则,将会出现 E = 0 或 E = 255。

---------------------

IEEE 最终选择了 127,大概是投硬币决定的吧。

相似回答