不枉初心,砥砺前行

皮皮祥的博客

欢迎留言,评论

导航

为什么-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,那么上述表达式计算结果就是错误的。

posted on 2022-07-21 15:12  皮皮祥  阅读(2409)  评论(0编辑  收藏  举报