计算机系统中,数值一律采用补码存储。因此所有运算也都是以二进制补码进行运算的。
正数的原码、反码、补码都是一样的!
例如:37是一个十进制数,其对应的原反补分别为
负数的反码是在原码的基础上“符号位不变,数值位取反”
负数的补码是在反码的基础上“符号位不变,数值位加 1”
最高位代表正负数,1代表负数,0代表正数。
例如:-37是一个十进制的负数,其对应的原反补码分别为
-37的原码为:1010 0101
-37的反码为:在上面原码的基础上符号位不变,其他位取反 1101 1010
-37的补码为:在反码基础上符号位不变,数值位+1 1101 1011
举例:计算3-2的结果
这里可以将3-2看作3+(-2)
3的补码是:0000 0011
-2的补码是:1000 0010(原)—1111 1101(反)—1111 1110(补)
因此可以使用 3的补码+(-2)的补码来运算