浮点数的二进制表示中的分数部分

时间:2017-05-24 02:45:30

标签: computer-science cpu-architecture

当我尝试将-0.75(二进制中的-1.1 * 2 ^ -1)转换为二进制形式时,我得到了

1 01111110 00000000000000000000001

但二进制数字-0.75实际上是

1 01111110 10000000000000000000000

有没有理由说明" 1"是在分数区域的最左边部分而不是最右边的?

1 个答案:

答案 0 :(得分:3)

根据this standard,对应于其24位二进制表示的十进制分数是两个的幂的总和,并且还有位置24的隐含位,始终为“1”。这个隐含位总是在总和上加一(不包括一些特殊情况 - 例如,零)。

示例:

000000000000000000000000 = 1 * 2^0 = 1
100000000000000000000000 = 1 * 2^0 + 1 * 2^(-1) = 1.5
110000000000000000000000 = 1 * 2^0 + 1 * 2^(-1) + 1 * 2^(-2) = 1.75

您可以玩惊人的在线converter来更好地理解这个标准。