1

我知道 stackoverflow 中可能存在重复的问题。但这些问题并没有直接解决我的问题。我的理解是 32 位机器使用 32 位来存储内存地址,因此它可以拥有的最大内存是 2^32 位。但是,2^32 位 = 2^29 字节 = 2^29/10^9 = 0.5 GB。

我知道答案应该是 4 GB。但我根本无法弄清楚我的错误在哪里。帮助!

4

1 回答 1

1

我相信 2^32 是指可寻址字节数,而不是内存中的总位数。您可以处理 40 亿字节(320 亿位)或 4 GB 的内存。例如

Address 0 | Address 1 |... | Address 2^32
........................................

8 bits    | 8 bits    | ...| 8 bits 

编辑:32 位机器通常是指可以填充到 CPU 寄存器(而不是 RAM)中的位数。因此,1 个寄存器允许 32 位,可以寻址 2^32 字节的 RAM。

编辑:这是对超级用户的一个很好的解释: https ://superuser.com/questions/56540/32-bit-vs-64-bit-systems

于 2013-05-07T00:29:02.353 回答