欢迎来到数据存储世界!
你有没有想过,电脑是如何仅靠电子开关,就能存储高清电影、朗朗上口的歌曲,甚至是 500 页的论文?在本章中,我们将揭开电脑的神秘面纱,看看它们是如何将所有事物转化为二进制(1 和 0)。如果一开始听起来有点像《黑客帝国》(Matrix),请别担心——我们会一步一步来拆解!
1. 数据存储单位
电脑是由数十亿个微小的开关组成的,它们只能是 ON (1) 或 OFF (0)。正因如此,所有数据都必须转换为二进制格式才能进行处理。
数据阶层
就像我们用克(g)和公斤(kg)来测量重量一样,电脑也使用特定的单位来衡量数据:
- 位 (Bit): 单个 0 或 1,这是最小的单位。
- 半字节 (Nibble): 4 个位(半个字节)。
- 字节 (Byte): 8 个位。(数据的“基本组成单位”)。
- 千字节 (KB): 1,000 个字节。
- 兆字节 (MB): 1,000 KB。
- 吉字节 (GB): 1,000 MB。
- 太字节 (TB): 1,000 GB。
- 拍字节 (PB): 1,000 TB。
记忆小撇步: 要记住这个顺序,试试这个口诀:Big Nice Boys Keep Many Great Toys Packed. (Bit, Nibble, Byte, KB, MB, GB, TB, PB)。
注意:在你的考试中,OCR 采用 1,000 作为倍数,但使用 1,024 也是可以接受的!
计算文件大小
你可能会被要求计算一个文件占用多少空间。以下是“黄金法则”:
- 文本文件: \( \text{每个字符的位数} \times \text{字符总数} \)
- 图像: \( \text{色彩深度} \times \text{图像高度 (px)} \times \text{图像宽度 (px)} \)
- 声音: \( \text{采样率 (Hz)} \times \text{持续时间 (s)} \times \text{位深度} \)
重点总结: 电脑使用二进制,因为它们是由晶体管(开关)组成的。当我们从位(Bit)往上算到拍字节(PB)时,每一步通常乘以 1,000。
2. 数字的存储
电脑通过将我们常用的数字(十进制 Denary)转换为二进制(Binary)来进行存储。
二进制与十进制的转换
要转换一个 8 位的二进制数字,请使用这样的表格:
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1
如果对应的栏位是 '1',就将该数字相加;如果是 '0',则忽略它。
例子:00001011 等于 \( 8 + 2 + 1 = 11 \)。
十六进制 (Hexadecimal)
十六进制是二进制的缩写。它对人类来说更容易阅读!它使用 0–9 以及 A–F(其中 A=10, B=11, C=12, D=13, E=14, F=15)。
快速回顾: 一个十六进制位数正好代表 4 个位(一个半字节)。因此,一个两位数的十六进制数代表完整的一个字节(Byte)。
位移 (Binary Shifts)
将位向左或向右移动是进行乘法或除法的快捷方式:
- 左移: 对数字进行乘法。向左移动 1 位,数值会加倍。
- 右移: 对数字进行除法。向右移动 1 位,数值会减半。
常见错误: 在右移时,任何从末端“掉出去”的位都会丢失,这可能会导致舍入误差!
二进制加法与溢出 (Overflow)
进行二进制加法时,记住:\( 0+0=0 \),\( 0+1=1 \),\( 1+1=10 \)(写 0,进 1),以及 \( 1+1+1=11 \)(写 1,进 1)。
溢出错误: 当加法的结果大到无法放入 8 位空间时,就会发生这种错误。电脑单纯没有位置存放那个“额外”的位了!
重点总结: 二进制是给电脑看的;十六进制是方便人类读取二进制的。位移是“数学快捷键”。
3. 字符的存储
为了存储文本,电脑会使用字符集 (Character Set)。这是一个对照表,将二进制数字连接到特定的字符。
- ASCII: 每个字符使用 8 个位。它只能表示 256 个字符(足以涵盖英文和符号)。
- Unicode: 使用更多的位(通常为 16 或 32)。它可以表示数以万计的字符,包括地球上所有的语言,甚至还有表情符号 (Emojis)!
你知道吗? 在字符集中,代码是有序的。如果 'A' 的代码是 65,那么 'B' 的代码就会是 66。
重点总结: 每个字符使用的位越多,能表示的唯一字符就越多,但文件大小也会随之增加。
4. 图像的存储
数字图像由称为像素 (Pixels,即 Picture Elements) 的微小点组成。每个像素都被分配一个二进制代码来表示其颜色。
重要因素:
- 分辨率 (Resolution): 图像中的像素数量(宽度 x 高度)。分辨率越高,图像越清晰,但文件也越大。
- 色彩深度 (Colour Depth): 每个像素所使用的位数。使用的位越多,颜色就越丰富(例如:2 个位 = 4 种颜色,8 个位 = 256 种颜色)。
- 元数据 (Metadata): “关于数据的数据”。这是存储在文件内部的额外信息,例如高度、宽度以及照片拍摄日期。
重点总结: 质量与文件大小之间存在取舍。提高分辨率或色彩深度会让图像看起来更好,但会占用更多存储空间。
5. 声音的存储
声音本质上是模拟 (Analogue) 的(连续的波)。电脑必须通过采样 (Sampling) 将其转换为数字信号。
采样的原理:
- 在固定的间隔测量声波的振幅(高度)。
- 每个测量结果都被转换为一个二进制数字。
- 这些数字按顺序存储,以便重新建立波形。
声音质量:
- 采样率 (Sample Rate): 测量的频率(以赫兹/Hz为单位)。
- 位深度 (Bit Depth): 每个样本可使用的位数。位越多,声波高度的“快照”就越准确。
重点总结: 较高的采样率和位深度等于更好的播放质量,但文件大小会大得多。
6. 压缩
为什么我们需要压缩?为了缩小文件大小,这样它们占用的存储空间较少,并且能更快速地通过互联网传输!
1. 有损压缩 (Lossy Compression)
这会永久性地删除文件中的某些数据。它会寻找人类眼睛或耳朵不容易察觉的部分并予以删除。
- 优点: 文件大小大幅缩减。
- 缺点: 质量下降;数据永远丢失。
- 例子: MP3, JPEG。
2. 无损压缩 (Lossless Compression)
这可以在不丢失任何信息的情况下缩小文件。它通常通过寻找数据中的规律来运作。
- 优点: 质量没有损失;可以完美还原原始文件。
- 缺点: 文件大小的缩减程度不如有损压缩。
- 例子: PNG, ZIP 文件。
快速回顾框: 在流媒体音乐或照片时,如果觉得“足够好”就可以了,请使用有损压缩。对于文本文件或软件等每一个位都至关重要的内容,请使用无损压缩!
重点总结: 有损 = 最小文件大小但质量较低。无损 = 完美质量但文件较大。