我知道stackoverflow中可能存在重复的问题。但这些问题并未直接解决我的问题。我的理解是32位机器使用32位来存储内存地址,因此,它可以拥有的最大内存是2 ^ 32位。但是,2 ^ 32位= 2 ^ 29字节= 2 ^ 29/10 ^ 9 = 0.5千兆字节。
我知道答案应该是4千兆字节。但我根本无法弄清楚我的错误在哪里。帮助!
答案 0 :(得分:1)
我认为2 ^ 32指的是可寻址字节数而不是内存中的总位数。你可以解决40亿字节(320亿比特)或4千克的内存。例如
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