源码,反码,补码浅析
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