1、首先,正数的原码,反码,补码相同。我们在这里不讨论。
2、 我们来讨论负数的原码反码补码的相互转换。
1. 负数原码和反码的相互转换
负数原码转化为反码:符号位不变,数值位按位取反。
原码 1100 0010
反码 1011 1101
负数反码转化成原码:符号位不变,数值位按位取反。
反码 1011 1101
原码 1100 0010
2、负数的原码和补码的相互转换
负数原码转化成补码:符号位不变,数值位按位取反,末尾加1
原码 1100 0010
反码 1011 1101 //符号位不变,数值位按位取反
补码 1011 1110 //末尾加1
负数补码转化成原码:符号位不变,数值位按位取反,末尾加1
补码 1011 1110
1100 0001 //符号位不变,数值位按位取反
原码 1100 0010 //末尾加1
3、负数的补码和反码的相互转换
负数反码转换成补码:末尾加1。
反码 1011 1101
补码 1011 1110
负数补码转化成反码:末尾减1。
补码 1011 1110
原码的反码 1011 1101
4、总结:
正数的原码、反码和补码都相同。
负数原码和反码的相互转换:符号位不变,数值位按位取反。
负数原码和补码的相互转换:符号位不变,数值位按位取反,末位再加1。