原码、反码、补码是计算机中对数字的二进制表示方法。
原码:将最高位作为符号位(0表示正,1表示负),其它数字位代表数值本身的绝对值的数字表示方式。
反码:如果是正数,则表示方法和原码一样;如果是负数,符号位不变,其余各位取反,则得到这个数字的反码表示形式。
补码:如果是正数,则表示方法和原码一样;如果是负数,则将数字的反码加上1(相当于将原码数值位取反然后在最低位加1)。
总结:正数的原码、反码、补码完全一样,只有负数需要按照以上规则计算。
示例:
数值 | 原码 | 反码 | 补码 |
6 | 0 000 0110 | ||
-6 | 1 000 0110 | 1 111 1001 | 1 111 1010 |
*示例中均为8-bit的整数。它的可表示范围包括-128到127,总共256(=2^8)个整数。
*0的反码、补码都为0