两种情况
- 当x为正数
举个例子:设[x]补 = 01010
,则有:
对比∵ [x]补 = 01010; ∴ [x]原 = 01010; ∴ [-x]原 = 11010; ∴ [-x]补 = 10110;
[x]补
与[-x]补
的每一位可以发现,把[x]补
连同符号位的每一位都取反再加1
即可得到[-x]补
- 当x为负数
还是举个例子:设[x]补 = 11011
,则有
可以发现负数也满足把∵ [x]补 = 11011; ∴ [x]原 = 10101; ∴ [-x]原 = 00101; ∴ [-x]补 = 00101;
[x]补
连同符号位的每一位都取反再加1
即可得到[-x]补
总结
实际上可以证明:对任意的x
,若已知[x]补
,则把[x]补
连同符号位的每一位都取反再加1
即可得到[-x]补
。我就不证明了(其实是不会)。
另外,结合负数求补码的快速方法,把[x]补
从符号位到最右边的一个1(不包括这个1)全部取反也可得到[-x]补
,且这样更快。
如有错误恳请指出