计算机中,数值的二进制表示有几个概念。
原码,补码和反码。计算机中,数值都是以补码的形式保存。
原码:就是十进制的数字转换为二进制在计算机中的表示,如正2,二进制表示为000 0010,(这里取8位显示),-2的2进制表示为1000 0010。前面的一位表示符号位,其中,正数为0,负数为1.
反码:正数的反码和原码相同,负数的反码就是保持原有符号位不变,其他位取反。
正数反码不变,负数如下:
-2
原码:1000 0010
取反:1111 1101 取反的反码
补码:正数的补码和原码一样,负数的补码,就是在原来的原码基础上,保持符号位不变,其他位取反,然后再加1:
如:
1000 0010
1111 1101 取反
1111 1110 +1
负数在计算机中就是以补码的形式保存。
已知一个补码,反推出其原码。
如:
1111 0111
1111 0110 -1
1000 1001 取反
和求补码一样,逆运算,先最末位位-1,在保持符号位不变取反,这样得到原码,这个数值表示-9.