这个和在无符号二进制和二进制补码二进制中是如何相等的?

时间:2017-09-19 23:39:49

标签: binary twos-complement bit-representation

我正在阅读计算机体系结构书籍,并发现了以下内容:

假设您有一个8位的单元格。所以有256个可能的整数值。非负数从0到127.假设两个补码二进制表示,97 + 45的总和是多少?

无符号显然是142,你可以用十进制97 + 45或者:

0110 0001
0010 1101 ADD
--------------
1000 1110

但是当你执行两个补码时,你得到结果(1000 1110)并确定它是负数,因为符号位是1.然后取一个补码:

NOT 1000 1110 = 0111 0001

然后确定它的两个补码:

0111 0001
0000 0001 ADD
--------------
0111 0010

此号码为114但由于我们的原始号码在符号位中有1,因此它为-114

问题(S):

为什么要找到-114找到两个补码的麻烦呢?从97和45开始,为什么不只是找到两个正整数之和作为无符号值,该值符合8位单元格范围(1111 1111255)。这只是因为问题要求两者的补充吗?

-114是否等同于142?我相信如果你采用两个补数行,你得142-256-114。从这一点来说,我不明白为什么如果要总结两个正值,你甚至想要使用两个补码!

1 个答案:

答案 0 :(得分:1)

1的补码只是意味着翻转所有位,2的补码意味着否定值。因此,255 - x256 - x中的2&#s有效地补充了8位结果。您可以通过1补码并添加1来获得2补码的结果。

8位中的142 等于-114。别对此感到困惑。