Files
test-repo/docs/zh-cn/appendix/1-computer-fundamentals/data-encoding-storage.md
T
sanbuphy d0afb042b8 feat(computer-fundamentals): add comprehensive content for computer fundamentals section
Add detailed documentation and interactive demos for computer fundamentals topics including:
- Transistor to CPU architecture
- Data encoding, storage and transmission
- Operating system concepts (processes, memory, filesystems)
- Programming language overview and paradigms
- Algorithm and data structure basics

Includes Vue component demos for key concepts with visualizations and interactive elements to enhance learning experience. All content is written in Chinese with markdown formatting and embedded components.

The commit also updates the sidebar navigation and adds new Vue components for interactive demonstrations of key computer science concepts.
2026-02-18 15:52:55 +08:00

7.3 KiB
Raw Blame History

数据的编码、存储与传输

::: tip 🎯 核心问题 计算机如何表示和存储各种数据? 文字、图片、视频、声音...这些在现实世界中形态各异的信息,是如何变成 0 和 1 的?又是如何存储和传输的?本章带你理解数据的编码、存储和传输原理。 :::


0. 全景图:数据的生命周期

想象你要寄一封信给朋友:

  1. 编码:把想法变成文字(信息编码)
  2. 存储:写在纸上(数据存储)
  3. 传输:通过邮局寄出(数据传输)

计算机处理数据也是类似的过程:

阶段 做什么 核心问题 类比
编码 把信息变成 0 和 1 如何用二进制表示各种数据? 把想法变成文字
存储 把数据保存起来 数据存在哪里?怎么组织? 写在纸上
传输 把数据送到别处 如何可靠、高效地传输? 邮局寄信

::: tip 📊 逐行解读这张表 编码:计算机只认识 0 和 1,所以所有数据都要"翻译"成二进制。文字用 ASCII 或 Unicode 编码,数字用二进制表示,图片用像素值,声音用采样值。

存储:编码后的数据需要保存起来。存储介质从快到慢有:寄存器 → 缓存 → 内存 → SSD → 硬盘 → 云存储。越快的存储越贵、容量越小。

传输:数据需要在不同设备间流动。传输方式有串行(一位一位传)和并行(多位同时传)。现代高速接口(USB、PCIe)多采用串行方式。 :::


1. 数据编码:用 0 和 1 表示一切

1.1 文本编码

::: tip 💡 字符编码的演变 ASCII1963年)

  • 用 7 位二进制表示 128 个字符
  • 包括英文字母、数字、常用符号
  • 问题:只能表示英语,无法表示中文等

Unicode1991年)

  • 统一编码标准,覆盖世界上所有文字
  • 目前已收录超过 14 万个字符
  • 常用编码方式:UTF-8(变长编码,1-4 字节)

UTF-8 的巧妙设计

  • ASCII 字符(0-127)只用 1 字节,完全兼容
  • 常用汉字用 3 字节
  • 根据"前导位"判断一个字符占几个字节 :::

常见字符编码对比:

编码 字节数 支持字符 特点
ASCII 1 字节 128 个 仅英语,兼容性好
UTF-8 1-4 字节 所有文字 变长编码,主流标准
UTF-16 2-4 字节 所有文字 定长为主,Windows 常用
GBK 1-2 字节 中英文 中文专用,不推荐新项目使用

1.2 数字编码

::: tip 💡 整数如何用二进制表示? 无符号整数:直接用二进制表示

  • 8 位可以表示 0-255
  • 32 位可以表示 0 到约 42 亿

有符号整数:用补码表示

  • 最高位是符号位(0 正 1 负)
  • 正数:直接用二进制
  • 负数:正数的二进制取反加 1

为什么用补码?

  • 加法减法统一处理
  • 0 的表示唯一
  • 硬件实现简单 :::

浮点数表示(IEEE 754 标准):

部分 作用 位数(32位浮点)
符号位 正负 1 位
指数位 决定大小范围 8 位
尾数位 决定精度 23 位

1.3 多媒体编码

图像编码

  • 位图:每个像素用 RGB 值表示(红绿蓝各 8 位)
  • 压缩JPEG(有损)、PNG(无损)
  • 矢量图:用数学公式描述形状(SVG

音频编码

  • 采样:把连续声波变成离散点
  • 量化:把采样值变成数字
  • 压缩MP3(有损)、FLAC(无损)

视频编码

  • 视频是一帧帧图像
  • 关键技术:帧间压缩(只记录变化部分)
  • 常见格式:H.264、H.265、VP9

2. 数据存储:速度与容量的权衡

2.1 存储层次结构

2.2 存储器类型

类型 原理 特点 应用
SRAM 触发器 极快,但昂贵 CPU 缓存
DRAM 电容充放电 较快,需刷新 内存
Flash 浮栅晶体管 断电不丢失,有写入寿命 SSD、U 盘
HDD 磁盘磁性记录 容量大,有机械延迟 机械硬盘

2.3 存储的关键指标

::: tip 💡 如何评估存储性能? 访问时间:从发出请求到获得数据的时间

  • 内存:约 100 纳秒
  • SSD:约 100 微秒
  • HDD:约 10 毫秒

吞吐量:单位时间能传输的数据量

  • 内存:几十 GB/s
  • SSD:几 GB/s
  • HDD100-200 MB/s

IOPS:每秒能进行的读写操作次数

  • SSD:几万到几十万
  • HDD:几百 :::

3. 数据传输:从串行到并行

3.1 传输方式

3.2 常见接口标准

接口 类型 速度 应用
USB 3.0 串行 5 Gbps 外设连接
USB 4 串行 40 Gbps 高速外设
SATA III 串行 6 Gbps 硬盘接口
PCIe 4.0 x16 串行(多通道) 32 GB/s 显卡、SSD
以太网 串行 1-100 Gbps 网络传输

3.3 传输的可靠性

::: tip 💡 如何保证传输不出错? 校验机制

  • 奇偶校验:简单的错误检测
  • CRC 校验:更强的错误检测能力
  • 校验和:快速检测数据完整性

纠错机制

  • 重传:发现错误就重新发送
  • 前向纠错:发送冗余信息,接收方能自动纠正

流量控制

  • 防止发送方发太快,接收方来不及处理
  • 类似"确认收到再发下一个" :::

4. 编码、存储、传输的协作

让我们看一个完整的例子:保存一张照片到云端

1. 编码阶段
   - 相机传感器捕捉光线 → 模拟信号
   - ADC 转换 → 数字信号(RAW 格式)
   - JPEG 编码 → 压缩后的二进制数据

2. 存储阶段
   - 写入手机内存(RAM)→ 临时存储
   - 写入手机闪存(Flash)→ 持久存储

3. 传输阶段
   - 读取闪存数据 → 内存
   - 通过 Wi-Fi/4G 发送 → 网络传输
   - 云端接收 → 写入云端存储

::: tip 💡 理解这个流程 每一步都涉及编码、存储、传输:

  1. 编码:把图像变成二进制数据
  2. 存储:在本地保存
  3. 传输:通过网络发送到云端

这三个环节紧密配合,才能完成"保存照片到云端"这个看似简单的操作。 :::


5. 总结:数据的三重奏

让我们用一个比喻总结编码、存储、传输:

概念 比喻 核心任务
编码 翻译 把信息变成 0 和 1
存储 仓库 把数据保存起来
传输 快递 把数据送到目的地

::: tip 💡 核心启示 数据处理的本质是"转换、保存、移动"

  • 编码解决"如何表示"的问题
  • 存储解决"如何保存"的问题
  • 传输解决"如何传递"的问题

理解了这三点,你就会明白:

  • 为什么不同文件格式要选择不同的编码方式
  • 为什么需要不同层次的存储介质
  • 为什么传输速度和可靠性需要平衡 :::

延伸阅读

  • 字符编码详解:深入学习 ASCII、Unicode、UTF-8 的设计原理
  • 存储技术发展:了解从磁带到 SSD 的技术演进
  • 网络传输协议:学习 TCP/IP 如何保证可靠传输
  • 数据压缩算法:了解 ZIP、JPEG、MP3 等压缩原理