问题描述
- 32位的系统为什么最大内存4G?应该是最大4G个地址啊
-
就是说32根地址总线,每根总线上两种状态0或1,那么就可以有2^32个地址。
然后我看很多文章说因为2^32等于4G,所以最大就4G。但是每个地址不都是4个字节。那不就是2^34B,就是16G么?
解决方案
内存一般是按字节寻址的,意思就是一个地址指向的内存单元有一个字节,即8位,那么32位对应有2^32个地址,对应的内存数是2^32 * 8bit=4Gbyte即4GB,具体可以看我的
博客:计算机科学概论----内存
解决方案二:
(1)字节是最小的地址单位,所以2^32字节就是4GB
(2)32位的系统为什么最大内存4G,这个说法是错误的,只是说它的直接寻址能力是4GB,事实上,在32bit的服务器上,内存超过4GB的比比皆是。
我们可以用间接寻址获得无限的内存访问(不考虑速度),硬件上和操作系统,也支持一种36位地址扩展的方法,也叫pae。可以实现最大64GB的内存支持。你可以看windows 2000 dataceter server (32bit)的文档,载明的最大内存支持就是64gb。
解决方案三:
这里说的是位,只有0,1,他能够表示的最大地址空间就是32位 0 或者1
而你说的地址是说的32位总共的长度是4个字节。
解决方案四:
一内存按位访问
二32 位最大可地址为4G
这在就很好理解了,超过4G就不能访问到了,最大内存就是充分利用了地址空间可向处理器提供的最大存储
解决方案五:
不好意思,4字节 = (4*8)位 = 32 位;哪来的34?
解决方案六:
32根地址总线代表有能力寻址2^32=4GB的地址空间。
解决方案七:
1。一个地址指向的内存的大小为8位,即1字节。
2。32位系统的“虚拟内存”最大为4G,而且win下必须为4G(其他系统不知道),物理内存的最大值受硬件环境等的影响有可能低于4G,同时有可能高于4G。
3。多少位和内存最大值没有必然关系,要是按你这么理解64位系统的最大内存有2^64b,是多少tb了,而其实上不管是amd64架构还是ia64架构都差远了。16位(8086)的内存也不是2^16b,而要高一些
解决方案八:
4G以上(含4G)内存与32位Linux系统
32位win系统,突破4G内存限制方法