1.1.2 进制转换
本节导学:进制转换不是孤立考点,而是后续计算题的工具
课程里讲得很明确:进制转换在软考中很少单独拿出来考,但它会藏在主存编址、IP 地址与子网、机器数读值这些题里。你看到的是地址、掩码、补码、容量,底层做的往往还是二进制、十进制、十六进制之间的切换。
进制的直觉可以从“逢几进一”理解:十进制逢十进一,二进制逢二进一,七天一个星期也可以类比成“逢七进一”。区别只是基数不同,位权不同。
1. 数码、基数、位权:所有转换的共同底层
| 概念 | 含义 | 十进制例子 | 二进制例子 |
|---|---|---|---|
| 数码 | 某一位允许出现的符号 | 0 到 9 | 0、1 |
| 基数 | 一共多少个数码,逢几进一 | ||
| 位权 | 某一位的权值 | 个位 | 低位 |
一个
小数点右侧的位权变成负次幂:
这两个公式解释了所有转换方法:非十进制转十进制是“按位权求和”,十进制转其他进制是“反过来拆出每一位数码”。
2. 常见进制标记
| 写法 | 含义 | 备注 |
|---|---|---|
1010B、1010(2) | 二进制 | B 来自 binary |
17(8) | 八进制 | 数码只能是 0 到 7 |
3A7H、3A7(16) | 十六进制 | A-F 表示 10-15 |
| 无特殊标记 | 通常按十进制 | 题目另有说明时按题意 |
十六进制在计算机里很常见,因为 F3H 就是 1111 0011B。
3. 非十进制转十进制:位权展开法
把任意进制转十进制,步骤只有一个:每一位数码乘以对应位权,再求和。
例 1:把 11001B 转成十进制。
例 2:把 1FH 转成十进制。
小数也一样,例如:
4. 十进制整数转其他进制:除基取余,逆序写
十进制整数转
例:把
25 / 2 = 12 ... 1
12 / 2 = 6 ... 0
6 / 2 = 3 ... 0
3 / 2 = 1 ... 1
1 / 2 = 0 ... 1余数从下往上读:
例:把
94 / 16 = 5 ... 14
5 / 16 = 0 ... 5E,所以:
5. 十进制小数转其他进制:乘基取整,顺序写
十进制小数转
例:把
0.625 * 2 = 1.25 -> 取 1
0.25 * 2 = 0.5 -> 取 0
0.5 * 2 = 1.0 -> 取 1所以:
如果小数部分一直不能变成 0,就说明目标进制下不能有限表示,题目通常会要求保留若干位。这和浮点数里的“有限位数只能近似表示部分实数”是同一类问题。
6. 二进制与八/十六进制:分组转换最快
二进制和八进制、十六进制之间不用每次都转十进制,可以直接分组:
| 转换 | 分组依据 | 原因 |
|---|---|---|
| 二进制 ↔ 八进制 | 3 位一组 | |
| 二进制 ↔ 十六进制 | 4 位一组 |
从小数点开始,整数部分向左分组,小数部分向右分组,不足补 0。
11010110B = 1101 0110 = D6H
11010110B = 011 010 110 = 326(8)
1FH = 0001 1111B7. 技术取舍:为什么十六进制没有替代二进制
| 表示方式 | 优点 | 局限 | 角色 |
|---|---|---|---|
| 二进制 | 硬件最容易实现,和电路状态直接对应 | 人读写长串二进制很费力 | 机器内部实际基础 |
| 十进制 | 人最熟悉,适合日常计算 | 不适合直接映射硬件两态 | 题目输入输出、人类阅读 |
| 十六进制 | 和二进制换算极快,表示更短 | 仍只是书写形式,硬件底层不是十六进制 | 地址、机器码、内存内容的简写 |
所以十六进制不是新硬件表示替代二进制,而是人和机器之间更友好的阅读层。
8. 易错点
| 易错点 | 正确处理 |
|---|---|
| 除基取余后顺序写反 | 余数从下往上读 |
| 乘基取整后顺序写反 | 整数部分按出现顺序读 |
| 小数位权写错 | 小数点右侧第一位是 |
| 分组从最左边随便切 | 必须从小数点开始向两侧分组 |
| 十六进制字母忘记数值 | A-F 分别是 |
🧪 例题(按难度)
基础练习
下面练习按照“真实考试”方式来做:先提交答案,再查看解析。
1) 25(10) → 二进制
2) 25(10) → 八进制
3) 25(10) → 十六进制
4) 11001(2) → 十进制
5) 37(8) → 十进制
6) 1F(16) → 十进制
7) 11010110(2) → 八进制
8) 11010110(2) → 十六进制
9) 326(8) → 十六进制
💡 解题技巧
考试常见题型
直接转换题
- 给定一个数,要求转换为其他进制
- 技巧:熟记转换方法,注意计算准确性
混合运算题
- 不同进制数的加减运算
- 技巧:统一转换为十进制计算,再转回目标进制
应用题
- 结合实际场景的进制转换
- 技巧:理解题意,识别需要转换的数据
常见错误
- 余数顺序错误:除基取余法要倒序排列
- 位数不够:二进制转八/十六进制时要补足位数
- 字母大小写:十六进制字母通常用大写
- 小数转换:乘基取整法容易出错
🔍 知识扩展
为什么这些转换方法有效?
- 除基取余法:基于进制的定义,每一位都是基数的幂次
- 位权展开法:直接应用进制的数学定义
- 分组转换:利用2的幂次关系(2³=8, 2⁴=16)
计算机中的应用
- 内存地址:通常用十六进制表示
- 文件权限:Unix系统用八进制表示
- 颜色值:RGB颜色用十六进制表示
- 网络地址:IP地址各段是十进制,但内部是二进制
📚 本课小结
转换方法:
- 十进制转其他:除基取余法(整数)、乘基取整法(小数)
- 其他转十进制:位权展开法
快速技巧:
- 二进制 ↔ 八进制:3位一组
- 二进制 ↔ 十六进制:4位一组
注意事项:
- 余数倒序排列
- 补足分组位数
- 字母大小写规范
💪 课后作业
- 完成课后练习题的所有计算
- 熟记0-15的各进制对照表
- 练习快速转换技巧,提高计算速度