当我尝试将-0.75(二进制中的-1.1 * 2 ^ -1)转换为二进制形式时,我得到了
1 01111110 00000000000000000000001
但二进制数字-0.75实际上是
1 01111110 10000000000000000000000
有没有理由说明" 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来更好地理解这个标准。