【计算机组成原理】——为什么有符号数负数多表示一位?
在计算机的存储和计算中,统一的是采用补码进行处理和运算的,表示的范围比原码和反码多一位。
原码,反码,补码的计算链接
以4位机器数为例(含符号位):
正数部分
原码,反码,补码二进制 | 0,000 | 0,001 | 0,010 | 0,011 | 0,100 | 0,101 | 0,110 | 0,111 |
---|---|---|---|---|---|---|---|---|
十进制 | +0 | +1 | +2 | +3 | +4 | +5 | +6 | +7 |
负数部分:
原码二进制 | 1,000 | 1,001 | 1,010 | 1,011 | 1,100 | 1,101 | 1,110 | 1,111 |
---|---|---|---|---|---|---|---|---|
十进制 | -0 | -1 | -2 | -3 | –4 | -5 | -6 | -7 |
反码二进制 | 1,111 | 1,110 | 1,101 | 1,100 | 1,011 | 1,010 | 1,001 | 1,000 |
---|---|---|---|---|---|---|---|---|
十进制 | -7 | -6 | -5 | -4 | –3 | -2 | -1 | -0 |
1,111+,001=1,000(最高位溢出)
补码二进制 | 1,000 | 1,111 | 1,110 | 1,101 | 1,100 | 1,011 | 1,010 | 1,001 |
---|---|---|---|---|---|---|---|---|
十进制 | -8 | -7 | -6 | -5 | –4 | -3 | -2 | -1 |
八位二进制对应的真值范围: