具有 32 个地址位和 16 个数据位的存储器的容量为?

A memory with 32 address bits and 16 data bits has the capacity of?

a) 2G b) 16G c) 32克 d) 64G

所以我发现我的答案是8G。但根据老师的说法是 d) 64 G。有人可以解释一下吗?

我认为是 2^32 * 2,因为每个地址有 2 个字节,然后除以 2^30,因为 2^30 个字节是 1 GB?

64 gigabits (Gib) = 8 gigabytes (GiB).

问题是 none 的答案有单位,只有前缀,所以它们都适合合理选择单位。

显然,由于总线宽度是以位为单位给出的,因此他们需要以位为单位的内存容量。这有一定道理,但我仍然认为这个问题是模棱两可的,而且是个骗人的问题。

这对我来说也是模棱两可的,因为他们没有告诉你每个字节是否有自己的地址,或者它是否只能字寻址。 (我们只知道正确答案是 64 Gib,它是词可寻址的)。除了某些 DSP 之外的现代 CPU 几乎都使用字节可寻址内存,即使(如早期的 DEC Alpha)它们不支持比字更窄的负载。正如@Kaz 指出的那样,它可能是一个具有 32 位字的可字寻址机器,其中一个字需要 2 个总线周期才能传输,所以即使找到以位为单位的容量,问题也没有明确规定。


如果您要从技术上讲单位,1 GB 是 10^9 字节,而 1 GiB 是 SI 单位的 2^30 字节。 https://en.wikipedia.org/wiki/Gibibyte.

(尽管如此,许多人和许多软件并不关心 SI 单位,甚至在表示 2^30 的 2 次幂情况下也使用 GB。SI 解决歧义的尝试尚未完全流行起来,也许是因为 SI 的 2 次幂命名法大声说出来是荒谬的。我从来没有听过任何人说甚至打出 "gibibyte" 非讽刺地没有至少嘲笑这个名字,只使用缩写来完全明确它们表示 2 的幂单位。)

请注意,硬盘供应商对于硬盘大小的定义是 10 GB 或 TB 的幂,因此他们可以在标签上标上更大的数字,但 4GB 的 DRAM 肯定是 4 GiB,因为 RAM 自然是基于 2 的幂。


从技术上讲,您不知道机器上一个字节的大小,所以实际上您只能说 8 giga-octets(或 64 Gib)。具有 9 位字节和 8 位以外的其他大小的机器曾经存在,但如果有人声称他们的机器具有 16 位字节而不是像其他人那样称其为可字寻址机器,则 IDK。所以这不是真正的歧义,除非你故意表现得很奇怪。

如果没有别的问题,这是一个非常糟糕的问题。

'word'的大小或数据位数是多少都没有关系。地址总线是 - 毫不夸张地说 - 32 条线,每条线可以是 1 或 0。这意味着地址数量是 2^32,或大约 40 亿 |(我们称之为 4G)

16 个数据位是每个地址两个字节,因此可以说 'total size of the memory' 是 8 GB。这与 64 GB 相同,因为每个字节 8 个。

技巧问题。