这个问题可以拓展,在8位整数机器中,为什么只有补码可以表示-128呢?
这里先看小数定点机,8位小数定点机中的数据表示:
S.XXXXXXX
S是正负符号位,后面的7个X是数值位。
如下都以8位二进制的小数定点机为例展开
原码: 实例1,二进制的0.1010000 = +( 1/2 + 1/8) =0.625
实例2,二进制的1.1010000 = -( 1/2 + 1/8) =-0.625
同上,结合上例8位小数定点机数据格式:S.XXXXXXX
根据原码的含义,1.0以至于-1.0都超出了小数定点机的表示能力。由于原码表示不了1.0以至于-1.0,所以,反码也表示不了1.0和-1.0。那么按道理,补码应该也表示不了-1.0吧?
其实是可以的,不单可以表示-1.0,而且根据从原码到补码的计算规则的逆规则,补码必须能够表示-1.0
原因如下图:

本文揭示了在8位整数机器中,补码为何能唯一表示-128,通过对比原码和反码的局限性,解释了补码规则如何确保-1.0的表示,并通过实例和计算规则来说明这一现象。

7362

被折叠的 条评论
为什么被折叠?



