原码、反码、补码、移码 总结

来自姬鸿昌的知识库
跳到导航 跳到搜索

转换规则

原码

最高位1表示负数,最高位0表示正数,其余n-1位表示数值的绝对值

反码

正数的反码与原码相同

负数的反码则在原码基础上除符号位外按位取反

补码

正数的补码、反码和原码相同

负数的补码则是其反码基础上加1

移码

将补码的符号位取反


±0的表示

0在补码和移码中有唯一的表示

±0的补码:0000 0000

±0的移码:1000 0000

计算机采用补码,其符号位和数值位均参与计算且没有减法,减法转换为加法进行计算

表示范围

原码、反码

-(2n-1-1) ~ +(2n-1-1)

补码、移码

-2n-1 ~ +(2n-1-1)

8位二进制下

补码和移码可以表示 -128;

-128的补码是 1 000 0000,移码是 0 000 0000