符号位:0位正数,1为负数
原码不能进行运算
正数的原码和反码一样,负数的反码是在原码的基础上,符号位不变,其余取反。
正数的补码和反码一样,负数的补码是在反码的基础上进行+1操作。
移码是在补码的基础上,把符号位取反。
1 | -1 | 1+(-1) | 结果 | |
原码 | 0000 0001 | 1000 0001 | 1000 0010 | -2 |
反码 | 0000 0001 | 1111 1110 | 1111 1111 | -0 |
补码 | 0000 0001 | 1111 1111 | 0000 0000 | +0 |
移码 | 1000 0001 | 0111 1111 | 1000 0000 | 0 |
取值范围
整数 | n=8 | |
原码 | -(2^(n-1)-1)~2^(n-1)-1 | -127~127 |
反码 | -(2^(n-1)-1)~2^(n-1)-1 | -127~127 |
补码 | -2^(n-1)~2^(n-1)-1 | -128~128 |