学习指南

数制

CIE A-Level 计算机科学· 第一单元:信息表示· 15 分钟阅读

1. 位值表示法★☆☆☆☆⏱ 5 min

📘 定义

按位数制

一种数字表示系统,每个数字的值由数字本身及其相对于基数(小数点)点的位置共同决定。

例:

十进制使用10个数字(0-9),二进制使用2个数字(0-1)

对于任意基数,基数点左侧最右位是(个位)。向左每移动一位,指数增加1。基数点向右每移动一位,指数减少1。

Value=i=0ndi×bi+j=1mfj×bj\text{Value} = \sum_{i=0}^{n} d_i \times b^i + \sum_{j=1}^{m} f_j \times b^{-j}
📐 例题

计算的十进制值

  1. 1

    将每个数字对应到位值:

  2. 2
    (1×23)+(0×22)+(1×21)+(1×20)+(1×21)(1 \times 2^3) + (0 \times 2^2) + (1 \times 2^1) + (1 \times 2^0) + (1 \times 2^{-1})
  3. 3

    计算每一项:

  4. 4

    对所有项求和得到最终结果:

2. 十进制整数转换为其他进制★★☆☆☆⏱ 5 min

将十进制整数转换为基数,使用反复除法:反复将该数除以,收集每次得到的余数,然后从后向前读取余数得到转换后的数。

📐 例题

将十进制数123转换为二进制

  1. 1

    反复除以2并收集余数:

  2. 2

    120 ÷ 2 = 61 余 1; 61 ÷ 2 = 30 余 1; 30 ÷ 2 = 15 余 0; 15 ÷ 2 = 7 余 1; 7 ÷ 2 = 3 余 1; 3 ÷ 2 = 1 余 1; 1 ÷ 2 = 0 余 1

  3. 3

    从后向前读取余数:

✓ 快速检测

测试你的理解:

  1. 十进制数47的十六进制是多少?

    • 2B

    • 1F

    • 31

    • 2F

    显示答案
    2F

    47 ÷ 16 = 2 余 15。15用F表示,因此结果是2F,且 2 × 16 + 15 = 47。

3. 二进制与十六进制的相互转换★★☆☆☆⏱ 4 min

由于,十六进制数字和4位二进制组(称为半字节)之间存在直接的1:1映射。这使得两种进制之间的转换非常快捷。

📐 例题

转换为十六进制

  1. 1

    添加1个前导零使总位数能被4整除,然后从右向左分组为4位一组:

  2. 2

    将每个半字节映射为对应的十六进制数字:0011 = 3,0101 = 5,1011 = B

  3. 3

    结果:

📐 例题

转换为二进制

  1. 1

    将每个十六进制数字映射为4位二进制:2 = 0010,A = 1010,C = 1100

  2. 2

    连接所有位得到:

  3. 3

    去掉多余的前导/后导零得到简化结果:

Exam tip:

始终使用这种直接分组法,不要通过十进制中转,这能在考试中节省大量时间。

4. 十进制小数转换为其他进制★★★☆☆⏱ 6 min

混合数的整数部分使用和之前相同的除法。对于基数点后的小数部分,使用反复乘法:反复将小数部分乘以,收集结果的整数部分,然后从前向后读取整数部分。当小数部分变为0或达到要求的精度时停止。

📐 例题

将十进制小数0.625转换为二进制

  1. 1

    从小数部分0.625开始:

  2. 2

    0.625 × 2 = 1.25 → 整数部分 = 1,新小数部分 = 0.25

  3. 3

    0.25 × 2 = 0.5 → 整数部分 = 0,新小数部分 = 0.5

  4. 4

    0.5 × 2 = 1.0 → 整数部分 = 1,新小数部分 = 0 → 停止

  5. 5

    从前向后读取整数部分得到:

5. 常见陷阱

错误做法:

将十进制整数转换为其他进制时,按收集顺序读取余数

原因:

第一个得到的余数是最低位(最右侧)数字,因此必须反转顺序

正确做法:

从最后得到的余数向第一个收集的余数读取,得到正确的数字顺序

错误做法:

将十进制小数转换为其他进制时反转数字顺序

原因:

第一个得到的整数部分是小数部分的最高位(最左侧)数字,因此顺序保持不变

正确做法:

将整数部分按先得到后得到的顺序写出,得到小数结果

错误做法:

进行十六进制转换分组二进制数字时,忘记添加前导/后导零

原因:

如果总位数不是4的倍数,不补零分组会得到错误的半字节值

正确做法:

给整数部分添加前导零,给小数部分添加后导零,使每个分组恰好为4位

错误做法:

给基数点后的数字使用正指数

原因:

基数点后的数字表示基数的分数,因此它们的位值使用负指数

正确做法:

基数点后的第一个数字使用从-1开始的指数

错误做法:

在十六进制中将10-15写为两个数字

原因:

十六进制每个位值需要一个单独的数字,因此10-15必须用A-F表示

正确做法:

对应关系:十进制10 = A,11 = B,12 = C,13 = D,14 = E,15 = F,每个数字对应一个字符

6. 速查表

转换类型

方法

任意进制 → 十进制

每个数字乘以基数^位置,对所有项求和

十进制整数 → 基数b

反复除以b,从后向前读取余数

十进制小数 → 基数b

反复乘以b,从前向后读取整数部分

二进制 → 十六进制

分组为4位半字节,1:1映射为十六进制数字

十六进制 → 二进制

每个十六进制数字映射为4位二进制,连接所有位

7. 常见问题

我需要学习分数的进制转换吗?

需要,CIE 9618考试经常考察不同进制间分数的转换,因此你必须掌握小数部分的乘法转换法。

为什么计算机科学中要使用十六进制?

十六进制是二进制数据的一种简洁、易读的表示方式:1位十六进制数字等于4位二进制,因此1字节对应2位十六进制数字,比8位二进制易读得多。它常用于表示内存地址和颜色代码。

我需要给二进制数添加前导零吗?

只有题目指定了固定位数(例如8位二进制)时才需要添加前导零。请始终遵循题目的要求。

真题中的出现

AI 根据考纲规律估算的考点位置,请对照官方真题核实准确性。仅作复习重点参考。

  • 2022 · 1

    十进制转二进制

  • 2023 · 1

    二进制转十六进制

  • 2021 · 1

    十进制小数转二进制

深入阅读

下一步

数制是计算机科学中所有信息表示的基础构件。掌握进制之间的转换是理解几乎所有后续主题的前提,从二进制算术、负数表示到内存寻址和字符编码。该主题在CIE 9618的试卷1中持续考察,通常作为第一题来测试核心基础技能。接下来,你将在此知识基础上学习不同类型的数据(有符号整数、浮点数、文本)如何用二进制表示。