Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想用二进制表示的数字 1010 1101 减去 1。我写出 1 的两个 s 补码:1111 1111,然后与第一个数字相加:
按位加法,带进位,得到 1 1010 1100:由于进位,我最终得到 1 位。这是如何在二进制加法中处理的?
还有,我是不是在用补码做加法?
谢谢。
这是一种完全有效且常用的减法方法,但“进位”标志与正常加法的含义不同。由于不是减去n,而是添加一个大数,因此需要以不同方式处理进位标志。这个额外的1通常表示按位加法的进位,而这里它表示一切正常。如果那里没有进位,这实际上意味着结果应该是负数 -a - b被转换为a + 2^n - b小于2^n,意思是b > a等等a - b < 0。无论哪种方式,都没有关系,因为您的结果将在结果的 8 位中正确显示。
n
1
a - b
a + 2^n - b
2^n
b > a
a - b < 0