Binary 二进制减法:2';s补码和;携带

Binary 二进制减法:2';s补码和;携带,binary,addition,operation,Binary,Addition,Operation,我想用1减去二进制表示法10101101中的数字。我写两个s的补码1:1111111,和第一个数求和: 带进位的按位加法得到10101100:由于进位,我得到的结果是多出1位。在二进制加法中如何处理这个问题 还有,我是不是在用二的补语做加法 谢谢。这是一种完全有效且常用的减法方法,但“进位”标志的含义与普通加法不同。由于您不是在减去n,而是在添加一个大的数字,因此需要对进位标志进行不同的处理。额外的1通常表示按位加法进位,而在这里,它表示一切正常。如果那里没有进位,实际上意味着结果应该是负数-a

我想用1减去二进制表示法10101101中的数字。我写两个s的补码1:1111111,和第一个数求和:

带进位的按位加法得到10101100:由于进位,我得到的结果是多出1位。在二进制加法中如何处理这个问题

还有,我是不是在用二的补语做加法


谢谢。

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

您的计算的位宽是多少?如果是一个字节,您只关心至少8位,因此进位(第9位)丢失。双s补码仅在定义的位宽度下才有意义。。。。(您正在计算模数2^8,即256)