提示:计算机基础
文章目录
4位源码、反码、补码表
如文章有误还请留言
4位有符号整型数
正数和0的 三码合一,即原码、反码和补码都一样
反码:符号位不变其余位取反
补码:反码+1 (符号位不参与计算)
| 十进制 | 二进制原码 | 二进制反码 | 二进制补码 |
|---|---|---|---|
| 1 | 0001 | 0001 | 0001 |
| 2 | 0010 | 0010 | 0010 |
| 3 | 0011 | 0011 | 0011 |
| 4 | 0100 | 0100 | 0100 |
| 5 | 0101 | 0101 | 0101 |
| 6 | 0110 | 0110 | 0110 |
| 7 | 0111 | 0111 | 0111 |
| 0 | 0000/1000 | 0000 | 0000 |
| -8 | 源码没有-8 (1000) | ? (1111) | 1000 |
| -1 | 1001 | 1110 | 1111 |
| -2 | 1010 | 1101 | 1110 |
| -3 | 1011 | 1100 | 1101 |
| -4 | 1100 | 1011 | 1100 |
| -5 | 1101 | 1010 | 1011 |
| -6 | 1110 | 1001 | 1010 |
| -7 | 1111 | 1000 | 1001 |
| 原码最符合人的直觉,但是不适合用电路实现,如果有符号数用补码表示,则可直接用电路计算就可得到正确值。 | |||
| 如: 正数与负数补码相加正好得到0的补码,补码相加得到的结果是正确的 |
在计算机中应该是用补码进行运算
如:四位 -8(二进制补码1000) + -1(二进制补码1111)
运算结果为 7(二进制补码0111)
如:short sv = -32768 (补码1000 0000 0000 0000);
short sv2 = -1 (补码1111 1111 1111 1111);
short sv3 ( 补 码 0111 1111 1111 1111) = sv + sv2;
sv3结果为 32767
再如:
若数据类型为 unsigned short 0xFFFF则为65535;
若数据类型为 short 0xFFFF则为-1;
若为有符号类型则最高位为符号位
5871





