原码
用最高位表示符号位,数值部分用二进制绝对值表示,这就是原码的表示方法。我们通常约定最高位符号为0是表示正,为1时表示负。
举例:+11原码为:00001011 -11原码为:10001011
反码
原码变反码规则∶正数的反码和其原码形式相同,负数的反码是除符号位,其他各位逐位取反(即0变1,1变为0)。
举例:+11原码为:00001011 -11原码为:10001011
+11反码为:00001011 -11反码为:11110100
补码
补码规则为:正数的补码和其原码形式相同,负数的补码是原码除符号位以外逐位取反(即0变1,1变为0),最后在末尾加1。
举例:+11原码为:00001011 -11原码为:10001011
+11补码为:00001011 -11补码为:11110101
补充:
将补码转换为真值︰[[X]补]补=[X]原
简单来说就是-11的补码为11110101,而他的补码的补码为10001011,刚好为-11的原码。
移码
无论正数、负数,在补码的基础上对符号位取反,一般用做浮点数的阶码,引入的目的是为了保证浮点数的机器零为全0。
举例:+11补码为:00001011 -11补码为:11110101
+11移码为:10001011 -11移码为:01110101
总结
在考试中多数以给你数字,让你转换为原码的形式,再根据原码写出他的反码、补码、移码,所以多加练习就可以熟练掌握,因为我也在备考阶段,有不足的地方请各位大佬及时指正,感谢大家支持。