如何从IEEE 754单精度浮点格式转换为十进制?

时间:2010-03-09 02:13:15

标签: binary ieee-754

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

0 01111011 10010000000000000000000

3 个答案:

答案 0 :(得分:2)

由于你已经发现这是(二进制)1.1001 * 10 ^ -100,现在你只需要将二进制数转换为十进制数。

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

首先是1.1001 * 10 ^ -100 = 0.00011001。

哪个是......

  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

这就是它的全部内容。

答案 1 :(得分:1)

1.1001b1*1 + 0.5*1 + 0.25*0 + 0.125*0 + 0.0625*11.5625。乘以2**-40.0625)得到 0.09765625

答案 2 :(得分:0)

在C:

int fl = *(int*)&floatVar;