0

I understand that the first bit is the sign and that the next 8 bits is the exponent. So in this example you would have 1.1001*2^-4 ? How do I then interpret this in decimal?

0 01111011 10010000000000000000000
4

3 回答 3

3

由于您已经知道这是(二进制)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

这里的所有都是它的。

于 2010-03-09T02:25:53.443 回答
1

1.1001b1*1 + 0.5*1 + 0.25*0 + 0.125*0 + 0.0625*1, 或1.5625. 乘以2**-4( 0.0625) 得到0.09765625

于 2010-03-09T02:20:51.100 回答
0

在 C 中:

int fl = *(int*)&floatVar;
于 2012-02-15T20:28:29.780 回答