正数的转换规则
对于正数,其原码、反码和补码在二进制表示上是完全一致的。也就是说,如果一个数是正数,那么:
-
原码:直接按该数的二进制表示即可。
-
反码:与原码相同。
-
补码:同样与原码相同。
负数的转换规则
对于负数,其原码、反码和补码的转换规则如下:
-
原码:最高位(符号位)为1,其余位为该数绝对值的二进制表示。
-
反码:在原码的基础上,符号位保持不变(仍为1),其余位按位取反(即将0变为1,将1变为0)。
-
补码:在反码的基础上,符号位仍然保持不变(仍为1),其余位加1(也就是反码最低位加1,逢二进一)。
转换过程示例
原码转反码
-
正数:直接保持原码不变。
-
负数:符号位不变,其余位按位取反。
反码转原码
-
正数:直接保持反码(也即原码)不变。
-
负数:符号位不变,其余位再次按位取反(即恢复到原码)。
原码转补码
-
正数:直接保持原码(也即补码)不变。
-
负数:符号位不变,其余位先按位取反(得到反码),然后在最低位加1(得到补码)。
补码转原码
-
正数:直接保持补码(也即原码)不变。
-
负数:有两种方法可以得到原码:
-
直接法:符号位不变,其余位先减1(得到反码,注意这里是二进制减法,需要借位),然后再次按位取反(得到原码)。
-
间接法:符号位保持不变,其余位按位取反后,在最低位再加1(注意这里的加1可能会产生进位,需要处理),然后舍弃掉溢出的最高位(如果存在的话),得到的结果就是原码。更常用的是第一种直接法。
-