📄 一句话概括
文字有编号、颜色是三组数、声音是一串采样值——计算机的世界里一切皆数字,数字化说的就是这套转换。
📝 本节和前面几节的关系
原则二说程序是指令加数据,这一节追问一句:数据长什么样?答案干脆利落——全是数字。
一、文字是编号
计算机只认数字,所以每个字符都发一个编号。英文有 ASCII 码(A 是 65),全世界的字符合起来有 Unicode 统一编号。 你在屏幕上看到【网】这个字,实际过程是:内存里存着编号 -> 按编号查字库 -> 把字形的点阵画出来。存和传的始终是编号。
二、颜色和图像是数字
屏幕上一个像素=红、绿、蓝三盏小灯的亮度,各用 0~255 一个数表示,比如红色就是 (255, 0, 0),写成网页代码是 #FF0000。 一张 1920×1080 的图,就是 200 多万个像素、600 多万个数字排成的方阵。所谓 P 图,就是按规则改这些数字。
三、声音也是数字
声音是空气的振动。计算机每隔一小段时间量一次振幅(叫采样),CD 音质每秒量 44100 次,每次记一个数字。 于是歌声变成了很长的一列数字,播放时再按数字推动喇叭还原。MP3 就是把这列数字按人耳规律压短的技术。
四、为什么非要数字化
因为数字有个大好处:可以无损复制和校验。抄一遍数字还是那些数字;模拟信号(老式磁带)每抄一遍就劣化一遍。 这一条奠定了整个信息时代:存储、传输、加密(第十章),全建立在【一切皆数字】上。
五、动手 Demo:亲眼看字变数字
用 ord() 把几个字当场变出编号,再看看颜色和声音怎么数字化。
# 一切皆数字
for ch in "网A7":
print(ch, "->", ord(ch)) # 字符变编号
print("红色 = #FF0000 = (255, 0, 0)") # 颜色变三组数
wave = [0, 60, 95, 60, 0, -60, -95, -60] # 声音的 8 个采样
print("采样:", wave)
实跑输出:
--------------------------------------------------------------------
对计算机来说,什么都是数字
--------------------------------------------------------------------
原则 3 的推论:计算机的世界里只有 0 和 1,所以一切都要先变成数字。
[文字 -> 数字] 每个字符都有一个编号(Unicode 码点):
字符 网 -> 编号 32593 -> 二进制 111111101010001
字符 A -> 编号 65 -> 二进制 1000001
字符 7 -> 编号 55 -> 二进制 110111
[颜色 -> 数字] 一个像素 = 红/绿/蓝三个 0~255 的数:
红 = R255 G0 B0 = #FF0000
天蓝 = R100 G180 B255 = #64B4FF
白 = R255 G255 B255 = #FFFFFF
[声音 -> 数字] 每隔一小段时间量一次波的高度(采样):
一个音波的 8 个采样点: 0, 60, 95, 60, 0, -60, -95, -60
1 秒量 44100 次(CD 音质),声音就成了一长串数字。
反向也成立:读出编号还原字符、读出数字点亮像素、读出数字推喇叭。
「数字化」三个字,说的就是这套转换。
ord('A') 是 65——跟教材里 ASCII 表对得上;汉字【网】的编号大得多,因为 Unicode 把十万多个字符排了号。 反过来 chr(65) 能把编号变回字符——存进去是数字,读出来是内容,双向都通。
30 秒实验
- 打开 Python 输入 ord('A') 和 chr(66),亲手玩一下编号与字符的互换。
- 用截图工具放大一张图到像素级——看到彩色小方块时,你看到的就是一格格数字。
常见误区
- 以为计算机里存着【网】字的形状——存的只是编号,字形是显示时查表画的。
- 以为图像和声音是【连续】的——数字化后全是离散的数字,只是密度高到人眼人耳分不出。
自测三问(点开对答案)
1. 【网】字在计算机里存的是什么? —— Unicode 编号(一个数字),显示时按编号查字库画出字形。 2. 一个像素由几个数字描述? —— 三个:红绿蓝各自的亮度(0~255)。 3. 数字化的最大好处是什么? —— 可无损复制与校验——数字抄多少遍都不劣化。- ☐ 下一节(1.5 只要理解了三大原则,即使遇到难懂的最新技术,也能轻松应对)
相关笔记
- 🔵 计算机基础 · 索引 — 二进制与编码的更多细节在那边
- 💻 计算机是怎样跑起来的 · 索引