2013-05-07 60 views
1

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

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

+0

2^32是可寻址*字节*而不是位。而且,1024b = 1KiB,1024KiB = 1MiB,1024MiB = 1GiB(使用十进制K/M/G也会略微减少数学运算,但在命运的转折中,它被制造商用来报告[主轴] HDD尺寸)。 。 – user2246674 2013-05-07 00:21:52

+0

带有32位地址寄存器的32位机器可以寻址2^32字节,因为地址选择一个字节的所有位。 – fvu 2013-05-07 00:22:30

+0

@ user2246674感谢您的快速回复。但如何理解32位和2^32可寻址字节之间的关系呢?我在这里只是有点困惑。 – pippo 2013-05-07 00:24:10

回答

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

+0

感谢您的链接! – pippo 2013-05-07 00:44:55