我正在阅读一本计算机体系结构的书,发现了以下内容:
假设您有一个 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。
问题):
为什么要费尽心思寻找二进制补码-114?由于 97 和 45,为什么不将两个正整数之和作为一个无符号值,该值适合 8 位单元格 ( 1111 1111being 255) 的范围。仅仅是因为问题要求二进制补码吗?
-114相当于142?_ 我相信,如果你采用二进制补码数线,你会142-256得到-114。由此,我不明白如果您将两个正值相加,为什么还要使用二进制补码!