原码、反码、补码
原码:最高位表示数的符号,其他位表示数值;最高位 0 表示正数,1 表示负数。
- [+7]原码 = 00000111B
- [-7]原码 = 10000111B
反码:
-
正数的反码和原码相同。
[+7]反码 = 00000111B = [+7]原码
-
负数的反码是由其原码的符号位不变,其余位取反。
[-7]反码 = 11111000B
补码:
-
正数的补码和原码相同。
[+7]补码 = 00000111B = [+7]原码
-
负数的补码是由其原码的符号位不变,其余位按位取反,再在最低位加1。
[-7]补码 = 11111001B
过程:
[-7]原码 = 10000111B 符号位不变,其余位取反,得到反码
[-7]反码 = 11111000B 根据反码,最低一位加1,得到补码
[-7]补码 = 11111001B