代码之家  ›  专栏  ›  技术社区  ›  tgai

如何将IEEE754单精度浮点格式转换为十进制格式?

  •  0
  • tgai  · 技术社区  · 14 年前

    我知道第一位是符号,接下来的8位是指数。所以在这个例子中,你会得到1.1001*2^-4?我该如何用十进制来解释这个?

    0 01111011 10010000000000000000000
    3 回复  |  直到 13 年前
        1
  •  2
  •   Jeffrey L Whitledge    14 年前

    既然你已经知道这是(二进制)1.1001*10^-100,现在你只需要把二进制数转换成十进制。

    在十进制中,每个数字的值是其前一个数字的十分之一。在二进制中,每个数字的值是前一个数字的一半。

    前1.1001*10^-100=0.000110001。

    这是…

      0 * 1           0 * 1
    + 0 * 1/2       + 0 * 0.5
    + 0 * 1/4       + 0 * 0.25
    + 0 * 1/8       + 0 * 0.125
    + 1 * 1/16      + 1 * 0.0625
    + 1 * 1/32      + 1 * 0.03125
    + 0 * 1/64      + 0 * 0.015625
    + 0 * 1/128     + 0 * 0.0078125
    + 1 * 1/256     + 1 * 0.00390625 
    

    0.0625+0.03125+0.00390625=0.09765625

    就这些了。

        2
  •  1
  •   Ignacio Vazquez-Abrams    14 年前

    1.1001b 1*1 + 0.5*1 + 0.25*0 + 0.125*0 + 0.0625*1 1.5625 .乘以那个 2**-4 ( 0.0625 得到 零点零九七六五六二五 .

        3
  •  0
  •   Taryn Frank Pearson    13 年前

    在C:

    int fl = *(int*)&floatVar;