我正在尝试将以下IEEE 754十六进制数0x805c00f0转换为其十进制等效值,根据在线转换器,该值等于-8.44920195816662938E-39 . 逐步在纸上进行,我得到以下结果:
805c00f0 = 1000 0000 0101 1100 0000 0000 1111 0000最左边1表示数字为负数 . 接下来的8位000 0000 0表示减去偏差后的指数为-127 . 我留下的位是101 1100 0000 0000 1111 0000,即尾数 .
在回忆隐含的1后,我有-1.101 1100 0000 0000 1111 0000 * 2 ^ -127 . 将小数点移动到左侧127位,我有-0.00(...)1101 1100 0000 0000 1111 0000.求和,得到-1(2 ^( - 127)2 ^( - 128)2 ^( - 130)2 ^( - 131)2 ^( - 132)2 ^( - 143)2 ^( - 144)2 ^( - 145)2 ^( - 146))= -1.01020727331947522E-38 . 这不等于转换器给我的东西,我无法理解为什么 . 我错了什么?
1 回答
每个wikipedia "The stored exponents 00 and FF are interpreted specially."和使用的公式是(-1)^(signbits)×2 ^( - 126)×0 . (有效位数)