任何存储于计算机中的数据,其本质都是以二进制码存储
根据冯~诺依曼提出的经典计算机体系结构框架。一台计算机由运算器,控制器,存储器,输入和输出设备组成。其中运算器,只有加法运算器,没有减法运算器(据说一开始是有的,后来由于减法器硬件开销太大,被废了 )所以,计算机中的没法直接做减法的,它的减法是通过加法来实现的
1. 原码
最高位为符号位,0代表正数,1代表负数,非符号位为该数字绝对值的二进制表示
| 十进制 | 原码 |
|---|---|
| 3 | 0000 0011 |
| -3 | 1000 0011 |
2. 反码
正数的反码与原码一致;负数的反码是对原码按位取反,只是最高位(符号位)不变
| 十进制 | 原码 | 反码 |
|---|---|---|
| 3 | 0000 0011 | 0000 0011 |
| -3 | 1000 0011 | 1111 1100 |
3. 补码
正数的补码与原码一致; 负数的补码是该数的反码加1
| 十进制 | 原码 | 反码 | 补码 |
|---|---|---|---|
| 3 | 0000 0011 | 0000 0011 | 0000 0011 |
| -3 | 1000 0011 | 1111 1100 | 1111 1101 |
总结
- 正数的原码、反码、补码是一致的
- 负数的补码是反码加1,反码是对原码按位取反,只是最高位(符号位)不变
- 计算机数字运算均是基于补码的。