数据的大小与单位
复习
- 第三章:了解了计算机使用二进制(0 和 1)表示数据,以及二进制与八进制、十六进制之间的关系
TL;DR
- 1 个二进制位是 1 bit(比特);8 个 bit 是 1 Byte(字节)
- 更大的单位依次是:KB、MB、GB、TB、PB、EB、ZB
- 计算机里 1 KB = 1024 B,而存储厂商标注的是 1 KB = 1000 B,所以买回来的硬盘看起来会“变小“
正文
上一章我们知道了计算机用 0 和 1 表示数据。但一个 0 或 1 能表示的信息太少,我们需要先给它们定一些“数量单位“,就像长度有米、厘米一样。
基本单位
为了方便计算机学界交流,这些有专业术语:
- 1 个二进制的 0 或 1 称为 bit,比特,用 b 表示
- 8 个二进制的 0 或 1 称为 Byte,字节,用 B 表示
- 8 是人为规定的,二进制表示一个数据会非常长,表示 0-9 都需要 4 个 bit
- 16 个 bit 为 Halfword,半字,用 H 表示(字和半字的概念以后会讲)
- 32 个 bit 为 Word,字,用 W 表示(字和半字的概念以后会讲)
注意区分大小写:b 是比特,B 是字节,二者相差 8 倍。以后看到网络带宽写着 100 Mbps 时,要记得除以 8 才是每秒多少字节。
更大的单位
字节仍然太小,一个文本文件动辄几 KB。在计算机中,数据大小的单位遵循二进制的特点:
- 1 KB (Kilobyte) = 1024 B = 2¹⁰ B
- 1 MB (Megabyte) = 1024 KB = 2²⁰ B
- 1 GB (Gigabyte) = 1024 MB = 2³⁰ B
- 1 TB (Terabyte) = 1024 GB = 2⁴⁰ B
- 1 PB (Petabyte) = 1024 TB = 2⁵⁰ B
- 1 EB (Exabyte) = 1024 PB = 2⁶⁰ B
- 1 ZB (Zettabyte) = 1024 EB = 2⁷⁰ B
注意:这里的 1024(2¹⁰)而不是 1000(10³)是因为计算机使用二进制。
厂商的 1000 与计算机的 1024
有趣的是,所有存储厂商使用和标注的 1 KB 并不是 1024 B,而是 1000 B,其他 MB 等单位同理。所以每个厂商标注 1 TB 或者 256 GB 等存储单位的硬盘容量,实际上比计算机认为的 1 TB 或 256 GB 要小一些。所以硬盘插上电脑之后,操作系统识别出来的硬盘容量总会比厂商标注的容量要小一些。这不是偷工减料,而是底数不相同。
严格来说,两套单位各有各的名字:以 1000 为底的叫 KB、MB、GB,以 1024 为底的应该叫 KiB、MiB、GiB(Ki 读作“二进制千“)。只是日常生活中,大家常常把二者混着叫。记住这个差别,就不必再为“硬盘缩水“感到奇怪了。
思考题
你买了一块标注 500 GB 的硬盘,插上电脑后系统显示只有 465 GB 左右。
这是硬盘缩水了吗?为什么?你能算出两者相差的比例大约是多少吗?
小结
知识点
- bit 与 Byte
- 字与半字
- KB、MB、GB、TB 等数据大小单位
- 1024 与 1000 的区别
参考资料
- ISO/IEC 80000-13:2008:信息技术中的量和单位
- Wikipedia(zh):字节:字节的定义
- Wikipedia(zh):二进制前缀:KiB 与 KB 的区别
思考题答案(仅供参考)
不是缩水。厂商标注的 500 GB 以 1000 为底,即 500 × 1000³ 字节;而操作系统以 1024 为底显示,换算回去约为 500 × 1000³ ÷ 1024³ ≈ 465 GB。二者表示的是同一块硬盘的同一个容量,只是底数不同。
协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
封面图
设计师 | 南国微雪