🔢 进制转换与编码
必修1 · 1.2 数字化与编码

第 2 节 进制转换与编码应用

为什么计算机只用 0 和 1?二进制、八进制、十进制、十六进制之间到底怎么换算?这些 0/1 又是如何变成我们每天扫的二维码的?这一节课,把原理一次讲透。

位权与基数 按权展开求和 除基取余倒序 8421 凑数法 三位一组 / 四位一组 二维码编码
1

情境导入:望楼如何传信?

《长安十二时辰》里,长安城的望楼用窗格颜色的组合传递军情——这其实就是一套"二进制编码"。

唐玄宗在位期间,长安有难。城中设有望楼,武侯们通过窗格的颜色切换把情报一站站传到靖安司:每个窗格只有白、蓝两种状态,多个窗格组合起来,就能表示不同的含义。

观察:把白色记作 0、蓝色记作 1,两个窗格就有 00、01、10、11 共 4 种组合,正好可以指示东、南、西、北四个方位。

动手试一试:拨动望楼窗格

点击窗格切换白 / 蓝,观察对应的二进制数与方位。(约定:00=东,01=南,10=西,11=北)

0
0
(00)2 = 东
结论:两种状态的"位"组合起来就能编码信息。信息种类不够用时,增加位数就行——这就是二进制最朴素的想法。

如果窗格更多,能表示多少种信息?

n 个窗格(n 位二进制)共有 2n 种不同组合,可以编码 2n 种信息。这正是"位数越多,能表示的内容越丰富"的原因。

2

原理:计算机为什么采用二进制?

答案藏在硬件里——计算机的物理基础是电路,而电路最可靠的状态只有两种。

回顾初中物理:一个开关只有断开与闭合两种状态;一盏灯只有灭与亮两种状态。把"断开 / 灭"记为 0,把"闭合 / 亮"记为 1,电路的两种物理状态就与二进制的两个数码一一对应了。

演示:两个开关控制一盏灯

点击开关切换状态,观察电路状态编码与灯泡的变化(本电路为串联:只有两个开关都闭合,灯才会亮)。

0断开
0断开
→
💡
状态 00 → 灯灭
开关1开关2状态编码灯泡
断开断开00灭
断开闭合01灭
闭合断开10灭
闭合闭合11亮

再进一步:3 个开关能编码 8 种状态

0开关A
0开关B
0开关C
(000)2 = (0)10 —— 第 0 号状态
为什么不用十进制?若要用十进制,电路必须能稳定区分 10 种电压状态,元件复杂、容易受干扰出错;而"高电平 / 低电平"两种状态最容易实现、最稳定可靠。运算规则也更简单:二进制加法只有 4 条规则,硬件实现极简。

二进制并不神秘,生活中到处都是

硬币

正面 / 反面,抛硬币做选择就是一次"二进制决策"。

判断题

对 / 错,用 1 和 0 就能统计整张卷子的得分。

开关与灯

开 / 关、亮 / 灭,是所有数字设备的底层语言。

"一生二,二生三,三生万物"——人类发现了二进制的机制,再用它在计算机里表示万事万物。

3

核心概念:基数、数码与位权

所有进制转换的方法,都建立在"位权"这一个概念之上。

先看熟悉的十进制

十进制数 215 = 2×102 + 1×101 + 5×100 // 2 的数量级是"百"(10²),1 是"十"(10¹),5 是"个"(10⁰) // 10²、10¹、10⁰ 就是每一位对应的"权"
位权(权):在某个数中,某一位上的"1"所代表的数量级。第 i 位(从右往左,从 0 开始数)的权 = 基数i。

推广到任意 R 进制

(N)R = dn-1×Rn-1 + … + d1×R1 + d0×R0 = Σ di×Ri // R = 基数(数码的个数);di = 第 i 位上的数码,取值范围 0 ~ R-1

四种常用进制对照

进制基数 R可用数码第 i 位的权书写标识典型用途
二进制20、12i下标 2 或 后缀 B计算机内部存储与运算
八进制80 ~ 78i下标 8 或 后缀 O早期系统、文件权限(Linux)
十进制100 ~ 910i下标 10 或 后缀 D人类日常计数
十六进制160~9、A~F16i下标 16、后缀 H 或 前缀 0x内存地址、颜色值、机器码

十六进制的"字母数码"

十进制0123456789101112131415
十六进制0123456789ABCDEF
二进制0000000100100011010001010110011110001001101010111100110111101111

注意:十六进制中 A~F 分别代表十进制的 10~15,这是为了"一位表示 0~15"而借用字母。

4

进制互转:两套方法,通吃所有进制

R 进制 → 十进制用「按权展开求和」;十进制 → R 进制用「除 R 取余、倒序排列」。

① R 进制 → 十进制:按权展开求和法

输入一个二进制 / 八进制 / 十六进制数,页面会把它逐位拆开,算出每一位的"权"与"数值",再求和。


② 十进制 → R 进制:除 R 取余,倒序排列

把十进制数反复除以 R 取余数,直到商为 0,然后把余数从下往上倒着读——最后一步的余数是最高位。

除法竖式(自上而下)

倒序读余数

易错提醒:余数一定要倒着读!第一次除以 R 得到的余数是最低位(最右边),最后一次的余数是最高位(最左边)。
5

快捷技巧:8421 法与分组法

掌握原理之后,用技巧可以做到"一眼看出答案"。

① "8421"法(凑数法)—— 二进制 → 十进制 / 十六进制

4 位二进制从高位到低位的权依次是 8、4、2、1。哪一位是 1,就把对应的权加起来;是 0 就跳过。

适用范围:二进制 → 十进制、二进制 → 十六进制(每 4 位一组,凑出的数直接写成一位十六进制数码)。

② 二进制 ↔ 八进制:"三缩一,一放三"

因为 23=8,所以每 3 位二进制恰好对应1 位八进制:二进制转八进制是"三位缩成一位",反过来是"一位放成三位"。

③ 二进制 ↔ 十六进制:"四缩一,一放四"

(每位十六进制展开成 4 位二进制)
记忆口诀:二转八,三位一组;二转十六,四位一组;从右往左分组,不足补 0。分组后每组独立换算,不用经过十进制,速度最快。
6

万能进制转换器

任意输入一种进制的整数,其余三种进制实时呈现(本节只讨论整数转换)。

二进制
—
八进制
—
十进制
—
十六进制
—

7

延伸:进制转换的真实应用 —— 编码

计算机里的一切都要先变成 0/1。这个"变成 0/1 的约定"就是编码。下面这些应用,本质上都是进制转换。

7.1 二维码:把文字变成 0/1 方阵

二维码(QR Code)就是把一串字符,按规则编码成由黑(1)白(0)小方块组成的矩阵。扫码时,手机读取明暗,还原成 0/1,再解码出原文。

编码流程

① 字符 → 数字:按字符编码(UTF-8)把每个字符变成一个或多个字节。
② 字节 → 二进制串:每个字节 8 位,例如字节的十六进制 3F = 二进制 00111111。
③ 加模式指示符、长度、纠错码:二维码自带纠错,遮住一部分仍能读出。
④ 填进方阵:按路径把 0/1 填入模块,1 涂黑、0 留白,加上三个角的定位图案。

内容的前 8 个字节

模块矩阵(前 14 行,■=1 黑,·=0 白)

联系进制:二维码的每一个模块就是一个"位"(bit)。一个 21×21 的二维码共有 441 个模块=441 bit;8 bit = 1 字节。所谓"信息数字化",就是把信息拆成这样一个个 0/1。

7.2 网页颜色 #RRGGBB:两位十六进制表示一个通道

网页中的颜色用 6 位十六进制表示,如 #FF8800。每两位控制一个通道:红(R)、绿(G)、蓝(B),每通道取值 00~FF,即十进制 0~255。

R 红
—
—
G 绿
—
—
B 蓝
—
—

7.3 字符编码:文字也是数字

计算机不认识"字",只认识"数"。于是人们约定:给每个字符编一个号(码点),存的时候存这个号——这就是字符编码。ASCII 用 1 个字节(0~127),汉字等多国文字用 Unicode / UTF-8。


7.4 IP 地址与子网掩码:点分十进制其实是二进制

IPv4 地址是 32 位二进制数,为了好记,每 8 位一组转成十进制,写成"点分十进制"。

小结:文字、图片、颜色、声音、二维码……进入计算机后全都变成二进制。进制转换不只是考试题,它是理解"数字化"的钥匙。
8

在线自测

随机生成 8 道题,输入答案后即时判定。可反复"换一批"练习。

得分—
9

课堂小结

转换方向方法口诀
R 进制 → 十进制按权展开求和:各位数字 × 基数位序 再相加按权展开求和法
十进制 → R 进制反复除以 R 取余,直到商为 0除基取余,倒序排列
二进制 ↔ 八进制从右往左每 3 位一组,每组换成 1 位八进制三缩一,一放三
二进制 ↔ 十六进制从右往左每 4 位一组,每组换成 1 位十六进制四缩一,一放四
二进制 → 十进制(快算)四位一组,权重 8 4 2 1,是 1 就加起来8421 凑数法
一条主线:计算机硬件只有两种稳定状态 → 采用二进制 → 用"位权"把二进制与人类熟悉的十进制联系起来 → 用编码把万事万物变成 0/1。理解了位权,所有进制转换都不需要死记硬背。