原码反码补码解析
原码
就是二进制定点表示法,即最高位为符号位,“0” 表示正,“1” 表示负,其余位表示数值的大小。
通过一个字节,也就是8个二进制位表示 +7和 -7
0(符号位) 0000111 (+7 正数)
1(符号位) 0000111 (-7 负数)
反码
- 正数的反码与其源码相同; 负数的反码是对其源码逐位取反,但符号位除外。
补码
- 正数的补码与其原码相同; 负数的补码是在其反码的末位加1
反码: | 补码: |
---|---|
0 0000111 +7(原码) | 0 0000111 +7(原码) |
0 0000111 +7(反码) | 0 0000111 +7(补码) |
1 0000111 -7 (原码) | 1 1111000 -7(反码) |
1 1111000 -7 (反码) | 1 1111001 -7(补码) |
正数与负数补码相加为0
0 0000111 + 0 1111001 ----------------------- 10 0000000 (1超出八位被砍掉) ----------------------- 0 0000000
1加1得2由于二进制没有2所以保留0向前进1从左到右计算。