为什么-8对应的原码、补码是1000,反码是1111?
4位带符号数X, =1000 的真值是-8
为什么呢?解答如下:
4位带符号数的前提下,-7的补码是1001,-6的补码是1010,-5的补码是1011……0的补码是0000,+1的补码是0001 ,+2的补码是0010……+7的补码是0111
可见
0000~1111这16个补码中只有1000不能通过定义找到真值,1000最高位(符号位)为1,说明是负数,那么按照上述列举的次序排下来,1000只能表示-8的补码
在只有4位的情况下,1000(补)必须表示-8,而不能表示为 -0;这甚至都不是为了多利用一位数,而是 不得不;
原因是设想这种情况:
我们想计算 (-8)+1=(-7)
1000(补)+ 0001(补)= 1001(补)= 1111 (原)= -7 正确
如果 1000 表示 -0,那么上述表达式计算结果就是错误的。