我想将1减去二进制表示1010 1101中的数字。我写的是1:1111 1111的两个补码,我和第一个数字相加:
按位添加,带进位,给出1 1010 1100:由于进位,我最终得到1位。如何处理二进制加法?
另外,我正在使用两个补码来做加法吗?
感谢。
答案 0 :(得分:2)
这是一种完全有效且常用的减法方法,但'进位'标志并不意味着它与正常加法相同。由于不是减去n
,而是添加一个大数字,因此需要以不同方式处理进位标记。额外的1
通常表示按位添加的进位,而这里它表示一切正常。如果那里没有进位,则实际上意味着结果应为负数 - a - b
已转换为a + 2^n - b
,小于2^n
,这意味着b > a
所以a - b < 0
。无论哪种方式,都无关紧要,因为您的结果将在结果的8位内正确显示。