在计算机中,保存数据都是使用补码方式。 这里我使用整数来展示正整数和负整数
正整数: 118
三码合一 原码 反码 和 补码 是一样的
就是该正整数的二进制表示方式
例如:
118(10) = 0111 0110(2)
源码:0111 0110
反码:0111 0110
补码:0111 0110
负整数: -118
原码: 该负数对应正整数的原码 但最高位是 1 (最高位表示符号位 1表示负数,0表示正数)
-118(10) => 0111 0110(2) => 1111 0110(2)
反码: 原码除【符号位】之外,其他位进行按位去反
1111 0110(2) = 1000 1001(2)
补码: 反码 + 1
1000 1001(2) + 1 = 1000 1010(2)
这样 118 - 118 可以表示为 :118 +(-118)
0111 0110(2) 118
+ 1000 1010(2) -118
---------------------------
0000 0000 0
负数在计算机中保存的形式是用补码形式。
这样操作是为了简化计算机的运算逻辑复杂度,提供计算机的运行效率。