原码:最高位为符号位,为0表示正数,为1表示负数。
比如:正数01100010,负数11100010
反码:正数和原码一样,负数除符号位不变之外,其余位按位取反,比如1取反为0,0取反为1
比如:正数01100010,负数10011101
补码:在反码基础上,正数表示不变,负数+1
比如:正数01100010,负数10011110
移码:在补码基础上,符号位取反。
比如:正数11100010,负数00011110
正数,原码,反码,补码都一样,移码是把正数变为负数。
负数,反码是在原码基础上,除符号位其他1变成0,0变成1,补码是反码+1,移码是把补码负数变为正数
正负0表示
+0 原码 00000000 -0 原码 10000000 0-0 原码 10000000
+0 反码 00000000 -0 反码 11111111 0-0 反码 11111111
+0 补码 00000000 -0 补码 00000000 0-0 补码 00000000
+0 移码 10000000 -0 移码 10000000 0-0 移码 00000000