数制
CIE A-Level 计算机科学· 第一单元:信息表示· 15 分钟阅读
1. 位值表示法★☆☆☆☆⏱ 5 min
按位数制
一种数字表示系统,每个数字的值由数字本身及其相对于基数(小数点)点的位置共同决定。
例:
十进制使用10个数字(0-9),二进制使用2个数字(0-1)
对于任意基数,基数点左侧最右位是(个位)。向左每移动一位,指数增加1。基数点向右每移动一位,指数减少1。
计算的十进制值
- 1
将每个数字对应到位值:
- 2
- 3
计算每一项:
- 4
对所有项求和得到最终结果:
2. 十进制整数转换为其他进制★★☆☆☆⏱ 5 min
将十进制整数转换为基数,使用反复除法:反复将该数除以,收集每次得到的余数,然后从后向前读取余数得到转换后的数。
将十进制数123转换为二进制
- 1
反复除以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
从后向前读取余数:
测试你的理解:
十进制数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个前导零使总位数能被4整除,然后从右向左分组为4位一组:
- 2
将每个半字节映射为对应的十六进制数字:0011 = 3,0101 = 5,1011 = B
- 3
结果:
将转换为二进制
- 1
将每个十六进制数字映射为4位二进制:2 = 0010,A = 1010,C = 1100
- 2
连接所有位得到:
- 3
去掉多余的前导/后导零得到简化结果:
Exam tip:
始终使用这种直接分组法,不要通过十进制中转,这能在考试中节省大量时间。
4. 十进制小数转换为其他进制★★★☆☆⏱ 6 min
混合数的整数部分使用和之前相同的除法。对于基数点后的小数部分,使用反复乘法:反复将小数部分乘以,收集结果的整数部分,然后从前向后读取整数部分。当小数部分变为0或达到要求的精度时停止。
将十进制小数0.625转换为二进制
- 1
从小数部分0.625开始:
- 2
0.625 × 2 = 1.25 → 整数部分 = 1,新小数部分 = 0.25
- 3
0.25 × 2 = 0.5 → 整数部分 = 0,新小数部分 = 0.5
- 4
0.5 × 2 = 1.0 → 整数部分 = 1,新小数部分 = 0 → 停止
- 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中持续考察,通常作为第一题来测试核心基础技能。接下来,你将在此知识基础上学习不同类型的数据(有符号整数、浮点数、文本)如何用二进制表示。
