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