注意:计算机的世界只有补码,没有原码和反码.
一.原码:
正数的原码是本身: 10是 0000 1010
负数的原码是本身.最高位用1代表符号 -10是 1000 1010
二.反码
正数的反码是本身:0000 1010
负数的反码是1 和0 对换.除了最高位. 1111 0101
三.补码
正数的补码是本身:0000 1010
负数的补码是反码+1 1111 0110
也就是说:
10在计算机里存储的是 0000 1010
-10在计算机里存储的是 1111 0110
为什么要使用补码还不使用原码呢?因为使用原码计算不正确.
比如:10 加上 -10 = 0
0000 1010
1000 1010
----------------相加
1001 0100 = 这玩意明显不是0
那么使用补码来看.
0000 1010
1111 0110
---------------------
1 0000 0000 由于byte只有8位所以舍弃了外边的那个1 最终结果= 0