Skip to content

Ma hoa va Truyen tai Du lieu la gi?

Loi noi dau

Khi ban gui mot buc anh cho ban, gui tin nhan WeChat, hoac tai mot game vai GB, nhung thong tin nay di qua nua trai dat va xuat hien nguyen ven tren man hinh cua ban nhu the nao? Chuong nay tap trung vao mot cau hoi thuong lam bối rối nguoi moi: Tai sao tep ban nhan lai bi loi ma? Tu cau hoi nay, chung ta se kham pha ba trong tam co ban nhat cua may tinh: ma hoa, luu tru va truyen tai.

Bai viet nay se giup ban hoc gi?

Sau khi hoc xong chuong nay, ban se co duoc:

  • Kha nang phan tich loi ma: khi gap "tep mo ra la ky tu la", co the phan tich nguyen nhan tu goc do ma hoa
  • Y thuc da nen tang: biet tai sao can chu y den dinh dang ma hoa va thu tu byte khi trao doi du lieu
  • The gioi quan ma hoa: hieu may tinh bieu dien moi thu bang 0 va 1 nhu the nao
  • Nen tang cho viec hoc sau
ChuongNoi dungKhai niem cot loi
Chuong 1Ma hoa ky tuASCII, UTF-8, GBK
Chuong 2Luu tru du lieuNhi phan, thu tu byte
Chuong 3Truyen tai du lieuSerialize, nen

0. Mo dau: Tai sao tep lai thanh "van tu co"?

Tuong tuong ban nhan duoc mot tep quan trong tu dong nghiep, mo ra thay toan ky tu la nhu "浣犲ソ" hoac "ä½ å¥½".

Su that la: phan lon "tep hong" chi co mot nguyen nhan -- may tinh "khong tim dung tu dien".

你收到的文件内容(字节流)
0xE40xBD0xA00xE50xA50xBD
用什么规则来「读」它?
正确(UTF-8)
你好
发件人用 UTF-8 存储了「你好」,你也用 UTF-8 读,当然正确。
核心领悟:字节本身没有含义,编码规则决定了字节变成什么字。发件人用 UTF-8 存,你用 GBK 读,当然面目全非。

Kien thuc cot loi: Tu dien khong khop

Byte (chuoi 0 va 1) khong co y nghia tuyet doi, la quy tac ma hoa do con nguoi tao ra moi cho chung y nghia.

Nguoi gui dung tu dien UTF-8 de dich hanh tu Thanh so, ban neu dung tu dien GBK de doc nhung so nay, ket qua tat nhien la ma la.


1. Ma hoa du lieu la gi? (Bien moi thu thanh so)

Ma hoa du lieu (Encoding) la tao mot "tu dien hai chieu", anh xa thong tin the gioi thuc (van ban, mau sac, am thanh) thanh 0 va 1.

1.1 Tu van ban thanh so: Tu ASCII den Unicode

Giai doan 1: ASCII -- chi 128 ky tu, du cho tieng Anh.

Giai doan 2: Thoi ky phan tan -- moi quoc gia lam tu dien rieng (GBK, Shift_JIS...), gay hon loan.

Giai doan 3: Unicode thong nhat -- cap so duy nhat cho moi ky tu tren the gioi. UTF-8 la quy tac luu tru pho bien nhat: tieng Anh 1 byte, tieng Trung 3 byte.

字符Unicode 码点UTF-8 字节字节数
U+4F60
0xE40xBD0xA0
3 字节
U+597D
0xE50xA50xBD
3 字节
U+0020
0x20
1 字节
HU+0048
0x48
1 字节
eU+0065
0x65
1 字节
lU+006C
0x6C
1 字节
lU+006C
0x6C
1 字节
oU+006F
0x6F
1 字节
字符数8
UTF-8 总字节数12
平均每字符1.5 字节
提示:英文字母在 UTF-8 中只占 1 字节,常用汉字占 3 字节,Emoji 占 4 字节。这就是为什么处理中文文本时,“字符数”和“字节数”是两个完全不同的概念。

1.2 Mau va am thanh thanh so nhu the nao?

  • Ma hoa hinh anh: Anh gom hang trieu pixel. Moi mau co ma so (nhu #FF0000 la do).
🖼️ 图片是如何变成数字的?(悬停在像素方块上看看)
💻 计算机实际看到的:
#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#3B82F6#3B82F6#F3F4F6#F3F4F6#3B82F6#3B82F6#F3F4F6#F3F4F6#3B82F6#3B82F6#F3F4F6#F3F4F6#3B82F6#3B82F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#3B82F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#3B82F6#F3F4F6#3B82F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#3B82F6#F3F4F6#F3F4F6#F3F4F6#3B82F6#3B82F6#3B82F6#3B82F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6#F3F4F6
将鼠标悬停在左侧画布的方块上
💡 原理解析:一张 1080p 的高清壁纸,其实就是 207 万 个像左边这样密密麻麻的小色块组成的。计算机把这两百多万个颜色的编号(如 #FF0000)按顺序记录下来,图片就变成了几百万个数字的集合。
  • Ma hoa am thanh: Am thanh la song. Do chieu cao song 44,100 lan/giay, ghi lai gia tri.
声音是如何变成数字的?(拖拽滑块调整采样率)
低音质 (严重失真)高音质 (贴近原声)
转译后的数字(高度):
0530-520530-520
说明:灰色的虚线是真实的连贯声波(大自然的模拟信号)。蓝色柱子是我们每隔一段时间去测量它的高度(数字信号)。采样频率越密集,记录下来的数字就越多,恢复出来的声音就越清晰逼真,但产生的文件也随之飙升。

2. Cau noi luu tru: Truoc khi gui, phai dat vao dau do

Sau khi ma hoa, truoc khi gui, phai luu vao phuong tien vat ly. Co mot luat sat: luu tru cang nhanh, gia cang dat, dung luong cang nho.

L0CPU 寄存器极快
L1CPU 缓存(Cache)很快
L2内存(RAM)
L3SSD(固态硬盘)较快
L4机械硬盘(HDD)
L2内存(RAM)
访问速度几十 ~ 100 纳秒
典型容量几 GB ~ 几百 GB
单价(每GB)适中(约 ¥30/GB)
生活类比:你打开的浏览器标签页——断电就没了,但当前工作全在这里。
实际用途:运行中的程序、操作系统、当前打开的文件都住在内存里。内存不够了→程序卡顿甚至崩溃。
提示:越快越贵,越慢越大。CPU 缓存极快但只有几 MB;机械硬盘虽慢但便宜又能存 TB。操作系统会自动在各层之间搬运数据——这叫存储层次结构

He dieu hanh nhu mot quan ly kho thong minh: luu phim/game o o cung cham nhung lon, khi chay thi chuyen sang RAM nhanh nho, khi dong thi don RAM cho tep khac.


3. Truyen tai du lieu la gi? (Gui 0 va 1 di du lich)

3.1 Truyen tai phan cung va LAN

Trong thung may hoac giua cac may gan nhau, la thach thuc vat ly. Ngay nay USB Type-C, PCIe dung truyen tai noi tiep (mot kenh chinh).

选择传输方式,然后点"发送数据包"
Tx
发送方
10110010
1 条线
Rx
接收方
已发送0 / 8 位
传输速率1 位/次
状态就绪
提示:等等,串行不是更慢吗?
表面上是的——但现代串行接口(USB 4、PCIe)传输频率高达每秒 数百亿次,而并行线路之间会产生 信号串扰(Crosstalk),反而限制了速度。所以高速接口全面转向了串行。

3.2 WAN va Internet

Khi du lieu phai di den may chu o nuoc khac, di qua cap quang bien, tram goi cu phan tan. Truoc mat la thach thuc su phuc hoi.

  1. Cat goi: Mang cat video thanh hang nghin goi du lieu (~1500 byte)
  2. Kiem tra (Checksum): Tinh ma kiem tra truoc khi gui
  3. TCP gui lai: Neu goi mat hoac hong, yeu cau gui lai

Nho co che TCP nay, ngay ca WiFi khong on dinh, tep tai ve luon nguyen ven 100%.


4. Thuc hanh cuoi: Tu chup anh den dang mang xa hoi

📸 照片上传的完整旅程从按下快门到云端备份,数据经历了什么?
1
编码
2
存储
3
传输
🔢编码阶段等待执行
☀️
光线
物理信号
📷
传感器
CMOS/CCD
📊
RAW 数据
24MB / 4860万像素
🗜️
JPEG 压缩
有损压缩
📄
JPEG 文件
3.2MB
第一步:编码 — 把光变成数字
1相机传感器把光信号转换成 RGB 数值(每个像素 3 × 8 bit = 24 bit)
2整张照片 4860 万像素 × 24 bit ≈ 140 MB 的原始数据
3JPEG 算法分析像素相似性,去掉人眼不敏感的信息,压缩到 3 MB

5. Bang thuat ngu

Thuat nguGiai thich
Bit (b)Don vi nho nhat, chi co the la 0 hoac 1
Byte (B)8 Bit gop lai. Don vi co ban do kich thuoc tep
Character Set"Muc luc tu dien", dinh nghia ky tu nao ton tai
Encoding"Quy tac luu tru", xac dinh ky tu ung voi byte nao
RAMBo nho lam viec nhanh nhung mat dien se xoa
SSDO cung the thao, luu tru vinh viu nhanh
Serial / ParallelNoi tiep = mot kenh xep hang; Song song = nhieu kenh cung luc
ChecksumMa kiem tra kem theo du lieu truyen
TCPGiao thuc dieu khien truyen, dam bao giao hang 100% nguyen ven

Tom tat

  • Tai sao cung tep nhan bi ma la? Du lieu khong hong, chi la phan mem dung sai tu dien (van de ma hoa).
  • Tai sao day Type-C mong hon nhung nhanh hon? Vi truoc la nhieu xe ngua chay song song (song song), gio la tau cao toc tren duong rieng (noi tiep).
  • Tai sao game lon tai lau? Vi can chuyen hang chuc GB tu o cung cham sang RAM nhanh.

Ban chat may tinh rat don gian: chuyen doi (ma hoa), luu tru (giu), va gui di (truyen tai) moi thong tin thanh xung dien.