码制
2026/9/12大约 3 分钟
码制
1. 考点一:码制基础概念
- 原码:最高位是符号位,其余低位表示数值的绝对值,直接表示该数据(0表示正数,1表示负数)
- 反码:正数的反码与原码相同,负数的反码是在负数原码基础上数值位取反(符号位不变)
- 补码:正数的补码与原码相同,负数的补码是在负数反码基础上末位补1(符号位参与运算)
- 移码:无论正负数,都是把补码的符号位取反
| 数值 +1 | 数值 -1 | (+1) + (-1) | |
|---|---|---|---|
| 原码 | 0000 0001 | 1000 0001 | 1000 0010 |
| 反码 | 0000 0001同上 | 1111 1110绝反 | 1111 1111 |
| 补码 | 0000 0001同上 | 1111 1111补一 | 0000 0000 |
| 移码 | 1000 0001符反 | 0111 1111符反 | 1000 0000 |
注:补码和移码中, 编码相同。
在上述示例中,移码相加为:,舍弃最后一位 ,得到 。
2. 负数补码求原码快捷公式
符号位不变,数值位从右往左数第1个1的前1位开始全部取反。
- 例子:已知补码为:
1111 1111,求原码。 - 解:根据快捷公式,符号为 ,从右往左数第一个 右边不变,结果为:
1000 0001。
2.1 例题一
题目:如果“2X”的补码是“90H”,那么X的真值是多少?
解:
90H 中的H 告诉我们这是一个16进制的数据,根据逆分组法可知其对应的二进制补码为:1001 0000。- 最高位符号位为 ,可知是一个负数。
- 利用快捷公式可知 原码为:
1111 0000。 - 真值为:。
- 则 。
3. 考点二:n位二进制数能够表示的数值范围和数码个数
3.1 定点整数
当 ,也就是一共 个数位时:
- 转为二进制:
1111 ~0111 - 范围:
- 原码范围:
- 重点:补码和移码可以达到 。
| 码制 | 定点整数数值范围 | 数码个数 |
|---|---|---|
| 原码 | ||
| 反码 | ||
| 补码 | ||
| 移码 |
3.2 定点小数
当 ,也就是一共 个数位时(小数点位于符号位之后):
- 数值范围:
- 原码范围:
- 重点:补码和移码可以达到 。
| 码制 | 定点小数数值范围 | 数码个数 |
|---|---|---|
| 原码 | ||
| 反码 | ||
| 补码 | ||
| 移码 |
3.3 例题二
题目:采用 位补码(包含一个符号位)表示数据,可以直接表示数值( D)。
- A.
- B.
- C.
- D.
解析: 位二进制补码(包含1个符号位)表示的整数范围是 ,因此它可以直接表示的最小负数值边界为 。故选 D。
