学习笔记:数据表示 - 信息单位(大纲 3.5.2)

未来的计算机科学家们,你们好!这一章非常重要,因为它向你传授了计算机内部的度量语言。你可以把它想象成数字数据的“公制系统”。计算机所做的一切——从运行复杂的算法到存储一张简单的照片——都是建立在这些基本单位之上的。让我们深入了解这些核心构建模块吧!

1. 基础单位:位(Bit)和字节(Byte)

在数字世界中,数据由流经电路的电信号来表示。这些电路只有两种状态:通电(on)或断电(off)。

位(Bit,二进制位
  • 位(bit)是信息的最小、最基本的单位。
  • 它只能容纳两个可能值中的一个:0(断电/假)或 1(通电/真)。
  • 类比:一个简单的电灯开关。它要么是开着,要么是关着。
字节(Byte)
  • 一个字节(byte)是由 8 位组成的组合。
  • 字节是计算机用于存储单个字符(如字母“A”或数字“5”)的标准单位。
  • 由于 1 Byte = 8 bits,它总共可以表示 \(2^8 = 256\) 种不同的可能值。
快速回顾:基础知识
1 Bit = 0 或 1
1 Byte = 8 Bits

2. 表示容量:\(n\) 位能容纳多少数据?

了解一串位可以表示多少不同的数值至关重要。这种计算需要使用 2 的幂运算。

\(2^n\) 规则

如果你有 \(n\) 位,你可以表示 \(2^n\) 种不同的数值。

  • 例 1: 如果 \(n = 1\) 位,你可以表示 \(2^1 = 2\) 个数值(0 或 1)。
  • 例 2: 如果 \(n = 4\) 位(通常称为 nybble,半字节),你可以表示 \(2^4 = 16\) 个不同的数值(从 0000 到 1111)。
  • 例 3: 如果 \(n = 8\) 位(1 字节),你可以表示 \(2^8 = 256\) 个不同的数值(从 0 到 255)。

你知道吗? 如果你使用 3 位,可能的配置有:000, 001, 010, 011, 100, 101, 110, 111。这正好是 \(2^3 = 8\) 种不同的方式。

重点总结: 系统所能编码的唯一信息量会随着可用位数的增加呈指数级增长。

3. 测量大容量数据:千(kilo)与二进制千(kibi)的困扰

随着计算机容量的扩大,我们需要前缀(如 kilo, mega, giga)来描述大量字节。在历史上,由于使用了两种不同的度量系统:十进制(公制)二进制(计算机科学),这导致了混淆。

问题的核心在于 1000 (\(10^3\)) 与 1024 (\(2^{10}\)) 非常接近。很长一段时间里,“千字节(kB)”有时指 1000 字节,有时指 1024 字节。

为了解决这种困惑,国际电工委员会(IEC)引入了官方的二进制前缀,即 IEC 前缀(kibi, mebi, gibi 等)。

⚠ 常见错误提醒 ⚠
你必须学会区分这两个系统:
1. 十进制前缀: 使用 10 的幂(主要由硬盘制造商等存储厂商使用)。
2. 二进制前缀: 使用 2 的幂(由计算机科学家和操作系统用于精确的内存测量)。

4. 十进制前缀(10 的幂)

这些前缀基于标准的公制系统,每进一级都乘以一千(1000)。

名称符号10 的幂值(字节)
kilok\(10^3\)1,000
megaM\(10^6\)1,000,000
gigaG\(10^9\)1,000,000,000
teraT\(10^{12}\)1,000,000,000,000

例子: 一块 1 TB 的硬盘实际包含 \(10^{12}\) 字节。

5. 二进制前缀(2 的幂)

这些由 IEC 官方认可的前缀基于 2 的幂,每进一级都乘以 1024。

关键区别在于名称中增加了“bi”(代表二进制,如 kibi 代替 kilo),符号中增加了“i”(如 KiB 代替 kB)。

名称符号2 的幂值(字节)
kibiKi\(2^{10}\)1,024
mebiMi\(2^{20}\)1,048,576
gibiGi\(2^{30}\)1,073,741,824
tebiTi\(2^{40}\)1,099,511,627,776

例子: 1 kibibyte (KiB) = \(2^{10}\) 字节。
现实联系: 当你购买标称为 1 TB(十进制测量)的硬盘时,你的操作系统可能会将其报告为 0.909 TiB(二进制测量)。这种差异经常让用户感到困惑,但根据上述明确的定义,这在技术上是准确的!

记忆小贴士:2 的幂
要记住二进制前缀的序列,记住幂指数是以 10 为阶梯递增的:
kibi = \(2^{10}\)
mebi = \(2^{20}\)
gibi = \(2^{30}\)
tebi = \(2^{40}\)

核心知识点总结

  • 位(bit)(0 或 1)是绝对的核心。
  • 字节(byte)(8 位)是标准的组合单位。
  • 你能表示的数值数量通过 \(2^n\) 计算。
  • 始终区分两种前缀系统:
    • 十进制(kilo, M, G, T) 使用 \(10^3\) (1000)。
    • 二进制(kibi, Mi, Gi, Ti) 使用 \(2^{10}\) (1024)。