原码、反码和补码是计算机中表示有符号整数的三种方式。
原码(Original Code):
原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。例如,如果是8位二进制:[+1]原=00000001,[-1]原=10000001。因为第一位是符号位,所以8位二进制数的取值范围就是:[-127,127]。原码是人脑最容易理解和计算的表示方式。
反码(Complement Code):
反码的表示方法是:正数的反码是其本身;负数的反码是在其原码的基础上,符号位不变,其余各个位取反。例如:[+1]原=[00000001]反,[-1]原=[11111110]反。可见如果一个反码表示的是负数,人脑无法直观的看出来它的数值,通常要将其转换成原码再计算。
补码(Supplementary Code):
补码的表示方法是:正数的补码就是其本身;负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1(即在反码的基础上+1)。例如:[+1]原=[00000001]反=[00000001]补,[-1]原=[11111110]反=[11111111]补。对于负数,补码表示方式也是人脑无法直观看出其数值的,通常也需要转换成原码再计算其数值。