二进制世界如何表达现实世界的文字、图像和视频
💻 从 0 和 1 到文字、图片与视频:计算机如何理解世界
本文深入讲解:计算机只懂 0 和 1,是如何表示文字、图片、声音与视频的。
通过图示与实例,让你从物理层到信息层完整理解计算机编码的原理。
🧠 一、最底层:0 和 1 是什么?
计算机的物理基础是电信号与晶体管(Transistor)。
一个晶体管就像一个小开关:
状态 | 电压 | 二进制表示 | 含义 |
---|---|---|---|
开 | 高电平 | 1 | 有电流 |
关 | 低电平 | 0 | 无电流 |
计算机中数十亿个晶体管组成逻辑电路,因此0 和 1 就是最小的信息单位(bit)。
电流状态 → 二进制高电平 → 1低电平 → 0
🔢 二、用二进制表示数字
1️⃣ 十进制与二进制的关系
十进制 | 二进制 | 计算过程 |
---|---|---|
5 | 101 | 1×4 + 0×2 + 1×1 |
13 | 1101 | 1×8 + 1×4 + 0×2 + 1×1 |
255 | 11111111 | 1×128 + … + 1×1 |
计算机用“位”来存储这些二进制数:
1 bit → 只能表示 0 或 1
8 bits → 可以表示 0~255(共 256 种状态)
2️⃣ 负数表示:补码(Two’s Complement)
计算机中负数不是用“符号位 + 数值”简单区分,而是用补码计算。
示例(8位):
数字 | 二进制(补码) | 说明 |
---|---|---|
+5 | 00000101 | 正数直接写 |
-5 | 11111011 | 取反 + 1 |
补码的好处:加减法都能用同一套加法电路实现。
3️⃣ 小数表示:浮点数(IEEE 754 标准)
浮点数表示形式:
(-1)^符号 × (1.XXXX...) × 2^(指数)
例:
6.75 = 二进制 110.11 = 1.1011 × 2²
存储结构:
部分 | 位数 | 含义 |
---|---|---|
符号位 | 1 | 表示正负 |
指数 | 8 | 决定范围 |
尾数 | 23 | 决定精度 |
🔤 三、文字:字符编码系统
计算机内部只存数字。
为了表示文字,人类定义了**“编码表”**,让数字 ↔ 字符一一对应。
1️⃣ ASCII(美国标准信息交换码)
字符 | 十进制 | 二进制(7位) |
---|---|---|
A | 65 | 01000001 |
B | 66 | 01000010 |
a | 97 | 01100001 |
空格 | 32 | 00100000 |
示例:
"Hi" → H(01001000) i(01101001)
2️⃣ Unicode 与 UTF-8
ASCII 只能表示 128 个符号,不够支持中文。
于是出现 Unicode,它为世界所有语言定义了唯一编号。
UTF-8 是 Unicode 的一种存储格式,采用 可变长度(1~4 字节):
字符 | UTF-8 编码(十六进制) | 字节数 |
---|---|---|
A | 41 | 1 |
中 | E4 B8 AD | 3 |
😄 | F0 9F 98 84 | 4 |
📦 示意图:
字符流: "中国"
↓
Unicode 编码点: U+4E2D U+56FD
↓
UTF-8 存储:E4 B8 AD E5 9B BD
↓
二进制:11100100 10111000 10101101 11100101 10011011 10111101
🎨 四、图片:像素(Pixel)矩阵 + 颜色通道
图片是一个二维矩阵,每个格子是一个像素。
每个像素包含三种颜色分量:红(R)绿(G)蓝(B)。
1️⃣ RGB 模型
颜色 | R | G | B | 二进制(24位) |
---|---|---|---|---|
红色 | 255 | 0 | 0 | 11111111 00000000 00000000 |
绿色 | 0 | 255 | 0 | 00000000 11111111 00000000 |
蓝色 | 0 | 0 | 255 | 00000000 00000000 11111111 |
白色 | 255 | 255 | 255 | 11111111 11111111 11111111 |
图片大小示例:
1920×1080(Full HD) → 2,073,600 像素
每像素 3 字节(RGB) → 原始大小约 6MB
2️⃣ 灰度图(黑白)
只存一个亮度值 (0~255)。
灰度值 | 二进制 | 视觉效果 |
---|---|---|
0 | 00000000 | 黑 |
128 | 10000000 | 灰 |
255 | 11111111 | 白 |
3️⃣ 图片文件格式
格式 | 特点 |
---|---|
BMP | 不压缩,体积大 |
JPEG | 有损压缩,适合照片 |
PNG | 无损压缩,支持透明 |
GIF | 支持动画帧 |
📦 压缩原理示意图:
像素矩阵
↓
压缩算法(JPEG: DCT变换 + 量化 + 熵编码)
↓
二进制文件(0001010110010...)
🔊 五、声音:模拟信号 → 数字采样
声音本质是空气振动的波形。
计算机要存储声音,需要把连续的声波采样成数字。
1️⃣ 采样过程示意图
声波(模拟信号)↓ 采样(Sample)
一系列离散点(数字信号)
2️⃣ 关键参数
参数 | 含义 | 示例 |
---|---|---|
采样率 | 每秒采样次数 | 44,100 Hz(CD音质) |
量化位数 | 每次采样的精度 | 16-bit(范围 -32768~32767) |
声道 | 1=单声道,2=立体声 | 立体声 |
示例:44.1kHz, 16bit, 双声道 =
44100 × 2 × 2 bytes ≈ 176,400 字节/秒
3️⃣ 文件格式
格式 | 特点 |
---|---|
WAV | 无压缩,质量高 |
MP3 | 有损压缩,通过丢弃人耳听不见的频率 |
AAC | 高效压缩格式,常用于视频 |
🎥 六、视频:动态图像 + 声音流
视频 = 图像序列(帧) + 音频
1️⃣ 帧(Frame)
每秒显示若干张图片,称为帧率(FPS)。
类型 | 帧率 | 用途 |
---|---|---|
24 FPS | 电影 | |
30 FPS | 电视节目 | |
60 FPS | 游戏/高速视频 |
📽️ 一段 10 秒、30FPS 的视频:
10 秒 × 30 帧 = 300 张图像
2️⃣ 压缩:视频编码(Codec)
连续帧的变化通常很小,所以压缩算法只保存变化部分:
帧类型 | 含义 |
---|---|
I 帧 | 完整帧(关键帧) |
P 帧 | 参考前一帧的差异 |
B 帧 | 参考前后帧的差异 |
常见编码:
- H.264 / H.265(HEVC)
- VP9 / AV1
📦 视频压缩结构示意图:
帧序列:[I] → [P] → [B] → [P] → [I] ...
解码时:逐帧重建出完整画面
3️⃣ 视频文件容器(Container)
视频文件不仅包含图像帧,还有声音和时间轴。
容器格式 | 特点 |
---|---|
MP4 | 常用格式,支持 H.264 + AAC |
MKV | 开源,支持多音轨/字幕 |
MOV | Apple 专用格式 |
📦 七、统一视角:一切皆比特流
计算机最终只存储 二进制比特流(Bit Stream):
01001000 01100101 01101100 01101100 01101111 ...
不同软件按不同规则解释它:
文件类型 | 解码方式 |
---|---|
文本 | UTF-8 解码为字符 |
图片 | JPEG/PNG 解码为像素 |
音频 | MP3/WAV 解码为波形 |
视频 | H.264/AAC 解码为帧与声音 |
📊 信息流结构图:
0 和 1↓(编码规则)
数字↓
文字 / 图片 / 声音 / 视频↓(人类感知)
内容世界
🧩 八、类比理解
实体世界 | 计算机世界 |
---|---|
电流通断 | 0 与 1 |
数字 | 二进制 |
字母文字 | 字符编码(UTF-8) |
图像颜色 | 像素矩阵(RGB) |
声音波 | 数字采样 |
视频 | 时间序列图像 |
文件格式 | 数据组织与压缩方案 |
✅ 九、总结
一切从 0 与 1 出发。
- 电平 → 表示比特
- 二进制 → 表示数字
- 编码表 → 表示文字
- 像素矩阵 → 表示图片
- 采样点 → 表示声音
- 帧序列 → 表示视频
不同的编码规则让同样的二进制流拥有不同意义。
从 0 和 1 的世界里,我们创造了丰富多彩的数字世界 🌏。