3
进制转换
GESP 三级 · 知识点 2

🔢 进制转换

我们数数「满十进一」,电脑数数「满二进一」,工程师偷懒会「满八进一、满十六进一」。学懂二进制、八进制、十进制、十六进制,就像学会了四种数数方言,还能互相翻译!

考纲知识点:二进制、八进制、十进制、十六进制
📖
考纲 · 知识点详述
摘自《CCF编程能力等级认证 C++&Python 认证标准》C++ 三级
  1. (2)掌握数据的进制转换:二进制、八进制、十进制、十六进制。
📚
先学一学
花 5 分钟读完下面 5 课,再去闯关就不慌啦
1
✋ 满几就进一:四种数数方言

我们从小用十进制:0、1、2、…、9,凑满 10 个就往前进一位。电脑里只有「开 / 关」两个状态,所以它用二进制,只有 0 和 1,满 2 就进位:

🔢 同一个数,四种方言怎么写
十进制数 13:
· 二进制(满 2 进 1):1101
· 八进制(满 8 进 1,用 0~7):15
· 十六进制(满 16 进 1,9 后面用 A~F):D
💡 口诀:几进制就「满几进一」;二进制只有 0、1,十六进制多出 A、B、C、D、E、F。
🌟 行业实际:为什么电脑用二进制?
芯片里的晶体管只有两种状态(通电/断电),用 0 和 1 最可靠。但二进制写起来太长,工程师就把 3 位合成 1 位八进制、4 位合成 1 位十六进制,写起来又短又不会错。
💡 口诀:电脑爱 2,人爱 10,工程师爱 8 和 16。
2
🪜 每一位都有自己的「分量」

十进制里,从右往左是「个位、十位、百位、千位」,也就是 1、10、100、1000……二进制也一样,只不过每一位的分量是 1、2、4、8、16……

🧪 二进制 → 十进制:乘分量再加起来
1101(二)从右往左是 1、0、1、1,分量为 1、2、4、8:
= 1×8 + 1×4 + 0×2 + 1×1
= 8 + 4 + 0 + 1 = 13
💡 口诀:二进制分量从右往左是 1、2、4、8、16……有 1 就加,是 0 就跳过。
🆚 易混对比:分量 vs 数字
1011(二) = 8 + 0 + 2 + 1 = 11(不是「一千零十一」!);1000(二) = 8。二进制里的「1000」读法要按分量算,不能按十进制读。
💡 口诀:看到二进制别按十进制的嘴来读,要按分量相加。
3
➗ 十进制 → 二进制:除 2 取余,倒着排

把十进制数不停地除以 2,把每次的余数记下来,最后从下往上读,就得到二进制。比如 13:

🧮 短除法一步一步来
13 ÷ 2 = 6 余 1
6 ÷ 2 = 3 余 0
3 ÷ 2 = 1 余 1
1 ÷ 2 = 0 余 1
余数从下往上读:1101
💡 口诀:除 2 记余数,商变 0 就停,余数倒着排。
⚡ 更快的凑数法
想想分量 8、4、2、1:13 = 8 + 4 + 1,所以 8、4、1 那几位写 1,2 那一位写 0 → 1101。两种方法结果一样,考试喜欢哪个用哪个!
💡 口诀:凑得到分量就写 1,凑不到就写 0。
4
🔗 八进制、十六进制和二进制是亲戚
🧪 分分组就搞定
110101(二)从右往左 4 位一分组:0011 0101 → 3、5 → 十六进制 35
如果 3 位一分组:110 101 → 6、5 → 八进制 65
💡 口诀:八进制三个一数,十六进制四个一数,不够前面补 0。
🔤 十六进制的字母表
0、1、2、…、9 用完以后:A=10、B=11、C=12、D=13、E=14、F=15。所以 D(十六) = 13,2F(十六) = 2×16 + 15 = 47。
💡 口诀:A 是 10、B 是 11、C 是 12、D 是 13、E 是 14、F 是 15。
5
🖥️ 程序里怎么写出不同进制

C++ 里可以用「前缀」直接写一个数(看得懂就好,不用背):0x 开头是十六进制,0b 开头是二进制。比如:

🧪 读一段小程序
看得懂就好,不用背:
cout << 0x1F;
cout << 0b1101;
0x1F = 1×16 + 15 = 310b1101 = 13。程序输出 31 和 13。
💡 口诀:0x 是十六、0b 是二进,读代码时要先认前缀。
🌟 行业实际:你天天都在用十六进制
网页的颜色 #FF8C42 就是十六进制:FF 是红色分量 255,8C 是绿色 140,42 是蓝色 66。内存地址、调试工具也爱用十六进制,因为 2 位就能写完一个字节,看着又短又整齐。
💡 口诀:2 位十六进制 = 1 个字节,颜色、地址都靠它。
🎯
闯关小锦囊 · 考点提醒
🎮
学完了?来闯关!
下面 15 个小挑战,点一点就能玩

Demo 原型 · 每个知识点独立页面 · 暂不含真实编译与进度存储。