3.1 数据编码
知识点
1.为什么计算机用二进制
计算机内部的一切数据(数字、文字、图像、声音、视频)都用二进制表示,原因有三:
| 原因 | 说明 |
|---|---|
| 物理上易实现 | 电子元件只有"通/断""高电平/低电平"两种稳定状态,正好对应 1/0 |
| 抗干扰能力强 | 只有两个状态,不容易因电压波动而判错 |
| 运算规则简单 | 二进制只有 0、1 两个数字,加法规则仅 4 条,电路实现容易、可靠性高 |
结论:二进制不是"计算机的偏好",而是"电子元件的物理特性决定的必然选择"。
2.数制的三个基本概念
| 概念 | 十进制 | 二进制 | 十六进制 |
|---|---|---|---|
| 数码 | 0~9 | 0、1 | 0 |
| 基数 | 10 | 2 | 16 |
| 运算规则 | 逢十进一 | 逢二进一 | 逢十六进一 |
| 位权 | 10ⁿ | 2ⁿ | 16ⁿ |
位权举例:十进制 352 = 3×10² + 5×10¹ + 2×10⁰;二进制 1101 = 1×2³ + 1×2² + 0×2¹ + 1×2⁰。
二进制各位的权值(必背):
| 位置 | 2⁷ | 2⁶ | 2⁵ | 2⁴ | 2³ | 2² | 2¹ | 2⁰ |
|---|---|---|---|---|---|---|---|---|
| 权值 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
口诀:1、2、4、8、16、32、64、128——从右往左翻倍。
3.数制转换(必考计算)
(1)二进制 → 十进制:按权展开相加
1101(2) = 1×8 + 1×4 + 0×2 + 1×1 = 13
10110(2) = 16 + 0 + 4 + 2 + 0 = 22
快捷法(8-4-2-1 法):把二进制位与权值对齐,哪位是 1 就把对应权值加起来。
(2)十进制 → 二进制:除 2 取余,倒序排列
以 45 为例:
45 ÷ 2 = 22 …… 余 1 ← 最低位
22 ÷ 2 = 11 …… 余 0
11 ÷ 2 = 5 …… 余 1
5 ÷ 2 = 2 …… 余 1
2 ÷ 2 = 1 …… 余 0
1 ÷ 2 = 0 …… 余 1 ← 最高位
结果:从下往上读 → 101101
验证:32 + 0 + 8 + 4 + 0 + 1 = 45 ✓
口诀:"除 2 取余,倒着读"。
(3)二进制 ↔ 十六进制:四位一组
十六进制存在的意义:二进制太长,十六进制正好把 4 位二进制压成 1 位,便于书写与阅读。
| 十六进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|---|
| 二进制 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 |
| 十六进制 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|
| 二进制 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
示例:
1011 1100(2) = BC(16)
2F(16) = 0010 1111 = 101111(2)
十六进制写法:2F、0x2F、2FH 都表示同一个数(十六进制)。
十六进制 → 十进制:2F = 2×16 + 15 = 47。
4.存储单位与换算
| 单位 | 换算 | 说明 |
|---|---|---|
| 位(bit,比特) | — | 最小单位,只能是 0 或 1 |
| 字节(Byte,B) | 1 B = 8 bit | 基本存储单位,一个字节可存一个 ASCII 字符 |
| KB | 1 KB = 1024 B | 2¹⁰ |
| MB | 1 MB = 1024 KB | 2²⁰ B |
| GB | 1 GB = 1024 MB | 2³⁰ B |
| TB | 1 TB = 1024 GB | 2⁴⁰ B |
必须记住的两条:
- 1 Byte = 8 bit——这是所有容量计算题的起点;
- 进率是 1024,不是 1000(进制是 2 的 10 次方)。
易混提示:Mb/s(兆比特每秒,带宽单位)与 MB/s(兆字节每秒,下载速度)差 8 倍。100 Mb/s 的宽带,理论下载速度约 12.5 MB/s。
5.字符编码
(1)ASCII 码(西文字符)
| 项目 | 内容 |
|---|---|
| 全称 | American Standard Code for Information Interchange(美国信息交换标准代码) |
| 位数 | 7 位二进制,共 128 个字符编码 |
| 存储 | 实际占 1 个字节(8 位),最高位补 0 |
| 内容 | 控制字符(0 |
必背的三个关键码值:
| 字符 | ASCII 值 |
|---|---|
数字 0 | 48 |
大写字母 A | 65 |
小写字母 a | 97 |
由此可推算:
B= 66,Z= 65 + 25 = 90;b= 98,z= 97 + 25 = 122;- 大写与小写同一字母相差 32(
a - A = 32)——这是大小写转换的原理; - 数字
057),所以9连续排列(48ord("7") - ord("0")可得数字值 7。
(2)汉字编码(中国)
| 编码 | 说明 | 关键数据 |
|---|---|---|
| GB 2312—80 | 国标码,6763 个汉字 + 682 个非汉字图形符号,共 7445 个 | 一级汉字 3755 个(按拼音)、二级汉字 3008 个(按部首);区位码 94 区 × 94 位 |
| GBK | GB 2312 的扩展,兼容 GB 2312 | 收录 2 万余个汉字(含繁体、生僻字),双字节编码 |
| GB 18030 | 最新国标,覆盖全部 Unicode 字符 | 变长编码(1/2/4 字节) |
| Unicode(统一码) | 国际统一字符集,为世界上每个字符分配唯一编号 | 常用 UTF-8 编码,变长 1~4 字节,兼容 ASCII |
区位码、国标码、机内码的关系(易考):
区位码 + 2020H = 国标码
国标码 + 8080H = 机内码(计算机内部实际存储的编码)
为什么加 8080H:为了避免与 ASCII 码冲突(让汉字两个字节的最高位都为 1),从而让计算机能区分"这是汉字还是西文"。
重要观念:同一个汉字在不同编码方案下的二进制值不同——这就是"乱码"产生的原因(用 A 编码保存,用 B 编码打开)。
6.图像编码
(1)位图与矢量图(必考对比)
| 对比项 | 位图(点阵图) | 矢量图 |
|---|---|---|
| 构成 | 像素点组成的矩阵 | 由数学公式描述的线条与图形 |
| 常见格式 | BMP、JPEG、GIF、PNG | SVG、AI、WMF、CDR |
| 放大效果 | 放大后模糊、出现锯齿(马赛克) | 放大不失真 |
| 文件大小 | 与分辨率成正比,通常较大 | 通常较小 |
| 适合表现 | 照片、色彩丰富的画面 | 标志、图标、工程图、卡通 |
| 编辑软件 | Photoshop、画图 | Illustrator、CorelDRAW |
记忆:位图靠"点",矢量靠"算"——点会糊,算不会糊。
(2)三个关键参数
| 参数 | 含义 | 影响 |
|---|---|---|
| 像素 | 图像的最小单位(一个小色块) | 像素越多越清晰 |
| 分辨率 | 图像中水平像素数 × 垂直像素数(如 1024×768) | 决定清晰度与文件大小 |
| 色深(颜色位数) | 每个像素用多少位二进制表示颜色 | 决定颜色数量与文件大小 |
色深与颜色数的关系:颜色数 = 2ⁿ(n 为色深)
| 色深 | 颜色数 | 名称 |
|---|---|---|
| 1 位 | 2 | 黑白二值图 |
| 8 位 | 256 | 256 色 / 灰度图 |
| 16 位 | 65536 | 高彩色 |
| 24 位 | 16777216(约 1677 万) | 真彩色(R、G、B 各 8 位) |
| 32 位 | — | 24 位真彩 + 8 位 Alpha 透明通道 |
24 位真彩色的原理:红、绿、蓝三个通道各用 8 位(0~255 共 256 级),组合出 256×256×256 = 16777216 种颜色。
(3)图像文件大小计算(必考公式)
公式:
文件大小(字节)= 水平像素数 × 垂直像素数 × 色深(位) ÷ 8
例题 1:一幅 1024×768 的 24 位真彩色未压缩图像,大小是多少?
1024 × 768 × 24 ÷ 8 = 2 359 296 B
2 359 296 ÷ 1024 = 2304 KB
2304 ÷ 1024 = 2.25 MB
答:约 2.25 MB。
例题 2:一幅 800×600 的 256 色图像,大小是多少?
256 色 → 色深 = 8 位(因为 2⁸ = 256)
800 × 600 × 8 ÷ 8 = 480 000 B ≈ 468.75 KB
解题三步:① 由颜色数求色深(2ⁿ)→ ② 代入公式 → ③ 按 1024 换算单位。
注意:题目若给出"压缩后",需乘以压缩比;JPEG 是有损压缩,实际大小还取决于图像内容,公式只适用于未压缩的位图(如 BMP)。
7.声音编码
(1)数字化的三步:采样 → 量化 → 编码
| 步骤 | 做什么 | 类比 |
|---|---|---|
| 采样 | 按固定时间间隔取声音信号的幅值 | 每隔一会儿量一次"有多响" |
| 量化 | 把取得的幅值转换成有限个等级的数值 | 把刻度归到最近的整数格 |
| 编码 | 把量化后的数值用二进制表示并存储 | 写成 0/1 |
(2)三个关键参数
| 参数 | 含义 | 常见值 | 影响 |
|---|---|---|---|
| 采样频率 | 每秒采样的次数(Hz) | 44.1 kHz(CD 音质)、22.05 kHz、8 kHz | 越高,还原越真实,文件越大 |
| 量化位数 | 每个采样点用多少位表示 | 16 位(CD)、8 位 | 越高,动态范围越大、噪声越小,文件越大 |
| 声道数 | 单声道 1、双声道(立体声)2 | 1 或 2 | 越多,文件越大 |
奈奎斯特采样定理(了解):采样频率应不低于声音最高频率的 2 倍,才能不失真地还原。人耳可听频率约 20 Hz~20 kHz,所以 CD 采用 44.1 kHz。
(3)声音文件大小计算(必考公式)
公式:
文件大小(字节)= 采样频率(Hz)× 量化位数(位)× 声道数 × 时长(秒) ÷ 8
例题:一段 1 分钟的 44.1 kHz、16 位、双声道未压缩音频,大小是多少?
44100 × 16 × 2 × 60 ÷ 8 = 10 584 000 B
10 584 000 ÷ 1024 ÷ 1024 ≈ 10.09 MB
答:约 10 MB(这也解释了为什么一首 4 分钟的 CD 音质歌曲要 40 MB 左右,所以要用 MP3 压缩)。
解题四步:① 时间统一换成秒 → ② 代入公式 → ③ 除以 8 换成字节 → ④ 按 1024 换算单位。
8.视频编码(了解)
视频的本质:连续的图像按时间顺序播放,利用人眼的视觉暂留产生"动"的感觉。
| 参数 | 说明 |
|---|---|
| 帧率(fps) | 每秒播放的画面数,常见 24/25/30 帧/秒;帧率越高越流畅,文件越大 |
| 分辨率 | 每帧画面的像素数(如 1920×1080) |
| 码率(bitrate) | 每秒的数据量,决定画质与文件大小 |
未压缩视频大小估算:
大小 = 每帧图像大小 × 帧率 × 时长
为什么实际视频文件小得多:因为采用了压缩,且视频压缩会利用帧间相关性(相邻画面变化不大,只存"差异")。
9.压缩:有损与无损
| 类型 | 原理 | 常见格式 | 特点 |
|---|---|---|---|
| 无损压缩 | 去除冗余,解压后完全还原 | ZIP、RAR、PNG、GIF、FLAC | 文件缩小有限,不损失任何信息 |
| 有损压缩 | 依据人眼/人耳的特性丢弃部分细节 | JPEG、MP3、MP4、AAC | 文件大幅缩小,不可完全还原 |
选择原则:
- 文档、程序、原始素材 → 无损(一个字节都不能错);
- 照片、音乐、视频 → 有损(人感知不出差别,但体积小很多)。
考点:JPEG 是有损、PNG 是无损;MP3 是有损、FLAC 是无损——这两组最容易混。
10.速查表
| 序号 | 考点 | 结论 |
|---|---|---|
| 1 | 计算机内部数据形式 | 二进制 |
| 2 | 采用二进制的原因 | 物理易实现、抗干扰、运算简单 |
| 3 | 二进制位权 | 1、2、4、8、16、32、64、128 |
| 4 | 十进制转二进制 | 除 2 取余,倒序读 |
| 5 | 二进制转十进制 | 按权展开相加 |
| 6 | 二↔十六进制 | 4 位一组 |
| 7 | 1 字节 | 8 位 |
| 8 | 1 KB | 1024 B |
| 9 | 1 MB | 1024 KB |
| 10 | ASCII 位数 | 7 位,共 128 个 |
| 11 | ASCII 存储 | 占 1 字节,最高位补 0 |
| 12 | 0 的 ASCII | 48 |
| 13 | A 的 ASCII | 65 |
| 14 | a 的 ASCII | 97 |
| 15 | 大小写差 | 32 |
| 16 | GB 2312 汉字数 | 6763 个 |
| 17 | 区位码→国标码 | +2020H |
| 18 | 国标码→机内码 | +8080H |
| 19 | Unicode 编码 UTF-8 | 变长 1~4 字节,兼容 ASCII |
| 20 | 位图放大 | 模糊、锯齿 |
| 21 | 矢量图放大 | 不失真 |
| 22 | 24 位真彩色颜色数 | 16777216 |
| 23 | 图像大小公式 | 宽×高×色深÷8 |
| 24 | 声音大小公式 | 采样频率×量化位数×声道数×时长÷8 |
| 25 | 采样三步骤 | 采样→量化→编码 |
| 26 | CD 音质参数 | 44.1 kHz、16 位、双声道 |
| 27 | 视频帧率 | 常见 24/25/30 fps |
| 28 | JPEG/MP3 | 有损压缩 |
| 29 | PNG/FLAC | 无损压缩 |
| 30 | 乱码原因 | 编码与解码方案不一致 |
11.课堂提示(讲课参考)
- "除 2 取余"必须让学生动笔算三遍(45、78、100),算过才记得牢;再用"8-4-2-1"法反向验算一次。
- 二进制与十进制的"位权表"贴在黑板上,后面讲 IP 地址、子网掩码、图像色深都靠它。
- 图像与声音的大小计算各讲两道题,重点训练"颜色数 → 色深"这一步(256 色 = 8 位是最容易漏的转换)。
- 现场演示乱码:把一个 UTF-8 保存的中文 txt 用 GBK 打开,学生立刻理解"编码表不一致"。
- 压缩对比用一个 20 MB 的 BMP 转成 JPEG,文件大小从 20 MB 变 1 MB,代价是放大后有噪点——有损/无损不用解释就懂了。