关于二进制反码运算的疑惑

来源:百度知道 编辑:UC知道 时间:2024/05/07 21:02:06
X=Y=-1111111
求(X的反码)+(Y的反码)=?

是不是1000 0001+1000 0001=1 0000 0010 ??最高位怎么处理?自然丢失?会的给个详细解答,谢谢!
一时乱了写错,是补码不是反码

X和Y的反码是10000000,不是10000001,后者是补码,不是反码,两个相加是100000000,最高位自然丢失,所以结果是00000000

首先,您表述有一点问题
反码是不参与运算的
参与运算的是补码
当然,您自己的算式中参与运算的也是补码
这一点没错

如果是已经定义好的8位运算的话
那么你提出的这种现象叫做溢出
一般来讲编程时是要考虑到溢出情况的
如果溢出能够避免,应当尽量避免溢出现象的发生

溢出其实就是高位丢失
最终结果出错