结束的原因随身携带

时间:2012-10-18 10:46:41

标签: computer-science

我知道如果最高位有进位,r-base数的r-1补码应该以进位结束。

但我无法弄清楚为什么要这样做。

我只能想到它可能是关于零的两个表示的原因。

例如:

 1 1 1 0    (-1)
 0 1 0 1    (+5)  
 ===============
10 0 1 1  =====>(0 1 0 0)
I just can explain it from the result that because its sum is positive, and 1's complement has two representations, so it should add one.

例如:

 1 1 1 0    (-1)
 1 0 1 0    (-5)  
 ===============
11 0 1 1  =====>(1 0 0 1)
And I cannot explain it why should add one.

结束携带的真正原因是什么?

感谢您阅读。

1 个答案:

答案 0 :(得分:5)

端到端进位实际上相当简单:它将加法运算的模数从r n 改变为r n -1,如果你认为数字为无符号。为简化起见,我们来谈谈二进制文件。

让我们使用四位二进制补码算法计算(-2)+( - 4):

  1 1 1 0    (-2)
+ 1 1 0 0  + (-4)
---------  ------
1 1 0 1 0    (-6)

让我们将进位保持在原来的位置。如果你把数字看成无符号整数,我们计算14 + 12 = 26.但是,加法是以16为模,所以我们得到10,这是无符号数,代表-6(正确的结果)。

在补码中,数字有不同的表示形式:

  1 1 0 1    (-2)
+ 1 0 1 1  + (-4)
---------  ------
1 1 0 0 0    (-6)

再次,让我们将进位保持在原位。如果你把数字看作无符号整数,我们计算13 + 11 = 24.然而,由于环绕进位,加法以模15进行,所以我们得到9,表示-6(正确)结果)。

因此,在四位二进制补码中,-2相当于14模16,-4相当于12模16,-6相当于10模16。

在四位补码中,-2相当于13模15,-4相当于11模15,-6相当于9模15。

有符号零:你得到“有符号零”的原因是因为在4位中有16个可能的数字,但是如果你在进行模15运算,那么0和15是等价的。这就是它的全部内容。