2025-11-20 05:38:43
反码就是给正数取相反的二进制数字,负数符号位加一,这样计算的时候不用单独处理符号位。比如正数5的二进制是0101,反码变成1010,负数-5直接符号位变1,其他位取反变成1011。加一主要是为了让负数运算更方便,变成补码之后,加减法不用单独处理符号位。
比如在计算的时候,如果两个负数相加,符号位本来应该保持不变,但直接用反码相加的话,进位会导致符号位错误。比如用4位二进制算-5+(-3),反码1011+1100=0111,结果变成+7,这显然不对。这时候加一变成补码,-5的补码是1100,-3的补码是1101,相加得到1100+1101=11011,取低4位是1011,再减一就是补码1010,对应-5+(-3)=-8。数据证明补码能正确处理符号位进位,而反码无法解决这个矛盾。所以加一让运算更统一,符号位也跟着进位,结果自然正确。
本题链接: