我正在看书结构化计算机组织作者:Andrew Tanenbaum。我正在浏览视频记忆部分,有以下示例:
1920 × 1080 像素的视频 RAM(3 字节/像素)需要超过 6.2 MB
但是,根据我所知,要计算它需要多少空间,我将使用:
- 1920x1080 = 2073600 像素
- 2073600x24 = 49766400 位
- 49766400/8/1024/1024 = 5.9 MB
那么为什么它说我需要超过 6.2 MB。请指出我做错了什么。
答案1
你是对的,这本书也是对的(但也是错的)。如果你以不同的方式拆分你的计算,你会立即发现这本书的错误:
2073600 像素 * (3 字节/像素) = 6,220,800 字节
现在,错误显而易见。书中使用 1,000^2 = MB 作为转换因子,而不是 1024^2 = MB。这很容易做到,因为 1000^2是当你谈论磁盘大小。
但是,1024^2 一直被用作 MB,用于与 RAM 或 CPU 相关的任何事物,因为这些硬件自然倾向于使用 2 的幂。从历史上看,这两个转换因子都被称为兆字节。如果遵循公制,那么从词源上讲,兆字节应该指 1000^2 字节。因此,1024^2 字节的新名称是美比比特,并缩写为 MiB——这既不那么令人满意,又不那么令人困惑。
现在,让我们对这个等式进行完整的推导:
2073600 像素 * (3 字节/像素) = 6,220,800 字节 = 6.2 * 1000^2 MB ~ 5.93 * 1024^2 MiB