对于有符号数而言:
- 二进制的最高位是符号位,0表示正数,1表示负数
- 正数的原码、反码、补码都一样(三码合一)
- 负数的反码 = 它的源码符号位不变,其他位取反
- 负数的补码 = 它的反码 + 1;反之,负数的反码 = 负数的补码 - 1
- 负数原码求补码的技巧:从右边数第一个1及其右边保持不变,左边按位取反(符号位不取反);
- 负数补码求原码:左右找1, 1不变,中间取反。具体解释,就是找到该补码的左边和右边的第一个1,然后左边和右边的第一个1都不变,再把这两个1中间的数都取反,就得到其原码了。
- 对于负数,原码求补码,补码求原码,都可以按照以下规则:符号位不变,其他位按位取反,取反后加1
- 0的反码、补码都是0
- java中都是有符号数,没有无符号数
- 在计算机运算的时候,都是以补码的方式来运算的,但是看运算结果的时候,都是看它的原码