源码,反码,补码浅析
Contents
源码,反码和补码的形式
以下三种码都是二进制码
- **源码:**符号位+真值的绝对值。符号位0表示正数,1表示负数。
- **反码:**正数时,反码=源码;负数时,反码=源码的符号位不变,其余位按位取反
- **补码:**正数时,补码=源码;负数时,补码=反码+1
计算机为什么用补码保存数字
因为用补码可以使用加法器完成加法和减法运算。
下面这张表格可以辅助理解,这里用三位二进制来分析:
| 三位二进制数 | 源码表示的数字 | 反码表示的数字 | 补码表示的数字 |
|---|---|---|---|
| 000 | +0 | +0 | +0 |
| 001 | +1 | +1 | +1 |
| 010 | +2 | +2 | +2 |
| 011 | +3 | +3 | +3 |
| 100 | -0 | -3 | -4 |
| 101 | -1 | -2 | -3 |
| 110 | -2 | -1 | -2 |
| 111 | -3 | -0 | -1 |
从上表可得,做加法时,使用反码时可以直接用二进制按位进行加法运算获得结果
Author ChrisHRZ
LastMod 2020-05-22