Computer science 进行端转的原因

Computer science 进行端转的原因,computer-science,Computer Science,我知道,如果最高位有进位,r-base数的r-1补码应该是结束进位 但我不明白它为什么要这么做 我只能想一想,原因可能是关于零的两种表示 例: 例: 到底是什么原因导致了端转携带 Thx供您阅读。结束循环进位实际上相当简单:如果您认为数字是无符号的,它会将加法运算的模数从rn更改为rn–1。为了简化事情,让我们来谈谈二进制 让我们使用四位二的补码算法计算(-2)+(-4): 1 1 1 0 (-2) + 1 1 0 0 + (-4) --------- ------ 1 1 0 1 0

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

但我不明白它为什么要这么做

我只能想一想,原因可能是关于零的两种表示

例:

例:

到底是什么原因导致了端转携带


Thx供您阅读。

结束循环进位实际上相当简单:如果您认为数字是无符号的,它会将加法运算的模数从rn更改为rn–1。为了简化事情,让我们来谈谈二进制

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

1 1 1 0 (-2) + 1 1 0 0 + (-4) --------- ------ 1 1 0 1 0 (-6) 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) 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


有符号零:得到“有符号零”的原因是四位中有16个可能的数字,但如果你在进行模15运算,那么0和15是等价的。仅此而已。

这只是补码算法定义的一部分。值得注意的是,为UDP数据包创建校验和时需要1的补码。 1 1 1 0 (-2) + 1 1 0 0 + (-4) --------- ------ 1 1 0 1 0 (-6) 1 1 0 1 (-2) + 1 0 1 1 + (-4) --------- ------ 1 1 0 0 0 (-6)