原码
(取值范围:-127~+127)
正数的原码是其本身
负数的原码是其本身
[+13]原 = 00001101 //第一位为符号位,0是整数,1是负数
[-13]原 = 10001101
反码
(取值范围:-127~+127)
正数的反码是其本身
负数的反码是符号位不变,其余位取反
[+13]原 = 00001101 [+13]反 = 00001101
[-13]原 = 10001101 [-13]反 = 11110010
补码
(取值范围:-128~+127)
正数的补码是其本身
负数的补码是其本身再+1
[+13]原 = 00001101 [+13]反 = 00001101 [+13]补 = 00001101
[-13]原 = 10001101 [-13]反 = 11110010 [-13]补 = 11110011
移码
(取值范围:-128~+127)
正数的移码是补码符号位取反
负数的移码是补码符号位取反
[+13]原 = 00001101 [+13]补 = 00001101 [+13]移 = 10001101
[-13]原 = 10001101 [-13]补 = 11110011 [-13]移 = 01110011
总结
正数的原码、反码、补码相同
负数的反码是原码符号位不变,其余位取反,补码是反码+1
正数和负数的移码都是补码符号位取反,其余位不变。
计算机储存的都是补码,因为用补码可以简化计算机运算部件的设计)。
一个数其补码的补码是其原码。