C++原码、反码和补码
在计算机中,原码、反码和补码是用来表示有符号整数的三种不同的二进制编码方式。
-
原码: 原码是最直观的表示方式,即用最高位表示符号位,0表示正数,1表示负数,其余位表示数值。例如,十进制数+3在8位原码中表示为00000011,十进制数-3在8位原码中表示为10000011。
-
反码: 反码是在原码的基础上,正数的反码与原码相同,负数的反码是在原码的基础上对数值部分取反。例如,十进制数+3在8位反码中表示为00000011,十进制数-3在8位反码中表示为11111100。
-
补码: 补码是在原码的基础上,正数的补码与原码相同,负数的补码是在原码的基础上对数值部分取反然后加一。例如,十进制数+3在8位补码中表示为00000011,十进制数-3在8位补码中表示为11111101。
补码是最常用的表示有符号整数的方式,因为它具有唯一的表示方式,并且可以通过补码运算实现加减法运算,简化了计算机中的运算操作。