首页 文章

IEEE 754到十进制

提问于
浏览
1

我正在尝试将以下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 回答

  • 2

    每个wikipedia "The stored exponents 00 and FF are interpreted specially."和使用的公式是(-1)^(signbits)×2 ^( - 126)×0 . (有效位数)

    805c00f0 =>
    8 0 5 c 0 0 f 0 =>
    1000 0000 0101 1100 0000 0000 1111 0000 =>
    1 00000000 101 1100 0000 0000 1111 0000 =>
    -1 x 2^(-126) x 0.10111000000000011110000 =>
    -1 x 2^(-126) x (2^-1 + 2^-3 + 2^-4 + 2^-5 + 2^-16 + 2^-17 + 2^-18 + 2^-19) =>
    -1 * (2^-127 + 2^-129 + 2^-130 + 2^-131 + 2^-142 + 2^-143 + 2^-144 + 2^-145) =>
    -8.449202e-39
    

相关问题