原码、反码、补码
10 (十进制)
原码 0000 1010 (二进制)
反码 0000 1010
补码 0000 1010
(三码合一)
-3
原码 1000 0011
反码 1111 1100 (除了符号位,其余翻转 1变0,0变1) (反码 = 原码符号位不变,其余翻转)
补码 1111 1101 (负数的补码 = 反码 + 1)
注意:计算机中的计算是以补码的形式计算的,存储也是存的补码。
计算 10 - 3 = 10 + (-3)
0000 1010 (补码)
1111 1101 (补码)
0000 0111 (还有一位溢出了)(计算结果是原码) === 7
存储的话,要在取反+1