数据在计算机中以二进制补码的形式进行存储和运算。
1、原码
高位为符号位,正数的符号位是0,负数的符号位是1。
以8个bit位表示数据,则
5 = 00000101,
-5 = 10000101
2、反码
正数的反码 = 原码;负数的反码是原码取反(除符号位)。
5的反码=原码=00000101
-5的反码=11111010
3、补码
正数的补码 = 反码 = 原码;负数的补码 = 反码的 +1 。
5的补码=反码=原码=00000101
-5的补码=(11111010)反+1 = 11111011
举个栗子
求5-3
5-3=5+(-3)
5的补码0101
-3的原码=1011=反码1100=补码1101
则5-3=(0101+1101)补=(0010)补=(0010)反=(0010)原=2
溢出计算见二进制有符号数加法