1

我想用二进制表示的数字 1010 1101 减去 1。我写出 1 的两个 s 补码:1111 1111,然后与第一个数字相加:

按位加法,带进位,得到 1 1010 1100:由于进位,我最终得到 1 位。这是如何在二进制加法中处理的?

还有,我是不是在用补码做加法?

谢谢。

4

1 回答 1

2

这是一种完全有效且常用的减法方法,但“进位”标志与正常加法的含义不同。由于不是减去n,而是添加一个大数,因此需要以不同方式处理进位标志。这个额外的1通常表示按位加法的进位,而这里它表示一切正常。如果那里没有进位,这实际上意味着结果应该是负数 -a - b被转换为a + 2^n - b小于2^n,意思是b > a等等a - b < 0。无论哪种方式,都没有关系,因为您的结果将在结果的 8 位中正确显示。

于 2012-10-01T05:24:54.043 回答