源码:最高位为符号为,0代表正数,1代表负数,非符号位为该数字绝对值的二进制。
反码:正数的反码与源码一致,负数的反码是对源码按位取反,只是最高位(符号位)不变。
补码:正数的补与源码一致;负数的补码是该数的反码加1。
我们以一个字节(8位为例),数字5和-5,分别用二进制表述它的源码、反码、补码
5 -5
源码:0000 0101 1000 0101
补码:0000 0101 1000 0101
反码:0000 0101 1111 1011
下面我们来计算5-5,因为计算机里面没有减法器,所以等于5+(-5)
分别用源码、补码、反码来计算它的值
源码: 补码 反码
0000 0101 0000 0101 0000 0101
1000 0101 1000 0101 1111 1011
结果:1000 1010 1111 1111 10000 0000
原码 1000 0000 0000 0000
十进制: -10 -0 0
根据上面所示,我们分别用原码和反码、补码来计算,然后得到它的原码,只有用反码表示的时候,我们才能正确表示我们的数值。