如何通过 253(175-253) 的补码法减去 2?



对于 2 的补码,计算机的减法过程。

176-253=176+(-253)

176=10110000

253=11111101

253(反转)=00000010

253(补)=00000010+1=00000011

-253=253(补音)=00000011

176+(-253)=10110000+00000011=10110011=179?

但实际上 176-253=-77

有人告诉我这里出了什么问题吗?

对于 8 位,您只能在 2 的补码中表示从 -128 到 127 的数字(包括 2)。您的两个数字都超出了该范围。您至少需要九位才能执行所需的计算。

在 2 的补码中,最高有效位(MSB,左起第一位)表示符号,1 表示负数,0 表示非负数。值:

00000011

不是 -253,而是 3。

以 9 位为单位进行计算,结果如下:

176 = 010110000
253 = 011111101
253(inverse) = 100000010
253(complement) = 100000010+1=100000011
-253 = 253(complement) = 100000011
176+(-253) = 010110000 + 100000011 = 110110011 = -77
请注意,所有负

数的 MSB=1,所有非负数的 MSB=0。

相关内容

最新更新