一、简要介绍
原码、反码和补码只是三种二进制不同的表示形式,每个二进制数都有这三个形式。
1、原码(True Form)
原码是将一个数的符号位和数值位分别表示的方法。
最高位为符号位,0表示正,1表示负,其余位表示数值的绝对值。
例如:
原码0000 0001 (1)D
原码1000 0001 (-1)D
2、反码(Ones' Complement)
反码是通过对二进制数逐位取反(0变1,1变0)得到的表示方法。正数的反码同其原码相同;负数的反码是其原码数值位逐位取反,符号位不变。
正数的反码同其原码相同,负数的反码是其原码数值位逐位取反,符号位不变。
正数
原码0000 0001 (1)D
反码0000 0001 (1)D
负数转反码,将数字位按位取反(原来为0变为1,原来为1变为0),符号位不变
负数
原码1000 0001 (-1)D
反码1111 1110 (-1)D
3、补码(Twos' Complement)
补码是通过对反码加1得到的表示方法。补码广泛用于计算机系统中,因为它简化了加减法运算。
正数的补码与反码一致,也与原码一致
也就是说正数的原码、反码和补码都是一样的。
正数
原码0000 0001 (1)D
补码0000 0001 (1)D
负数反码转补码,加一就可以得到补码
负数
反码1111 1110 (-1)D
补码1111 1111 (-1)D