这个问题一直都有同学问到,算是提问次数最多的问题之一了。

32位是什么

现在主流的操作系统都是64位的,早期存在32位操作系统,相信大家也都有所听闻,其实,在更早之前,还有16位、8位的,这里就不展开了。

位,指的比特位,32位指的就是计算机总线一次传输的数据长度,包括数据总线、地址总线、控制总线。

地址总线

地址总线是用来传送数据的地址的,主要用于CPU、DMA,通过地址总线传输地址,找到对应地址的数据,再通过数据总线传输对应的数据。那么因为操作系统是32位,所以地址长度最长也为32位,则最大的寻址范围为2^32次方。

到这里,问题似乎就结束了,因为2^32字节=4G,说明最大寻址空间为4G。

但其实没有,提问:为啥2^32寻址范围对应的是字节呢?为什么不能是比特或者是其他的单位。

这其实是寻址方式决定的。

按字节寻址

计算机内存一般是按字节寻址的,当计算机以这种方式寻址时,一个地址就和一个字节对应,所以才有了2^32字节=4G的计算方式,通过这种计算方式,可以得到32位系统最多支持4G内存的结论。

按字寻址

除了按字节寻址以外,还有一种按字寻址的方式。字的大小可以是32位,也可以是64位,当按字寻址的时候,每个地址指向的就是一个字,假设一个字为32位,那么32位地址就可以存储2^32*32/8=16G空间。

所以在讨论寻址范围的时候,还需要把按字节寻址和按字寻址的区别也考虑进去。

寻址范围和寻址空间

寻址范围和寻址空间是两个概念,上面也多次提到,这两个概念是不一样的,这里也需要特别注意一下,寻址范围指的是一个范围,他是一个区间,不带任何单位;而寻址空间指的是可以寻址的容量,它是带单位的。

相信看到这里,大家就都可以透彻的回答“为什么32位系统最高只支持4G内存”这个问题了。

有兴趣了解更多的同学,可以关注课程:《编程必备基础知识——计算机组成原理+操作系统+计算机网络》

32位java 最大内存_【答疑系列】为什么32位系统只支持最大4G内存?相关推荐

  1. 计算机知识(1)——为什么32位系统只支持4GB内存?

    因为32位系统说的是寻址范围(查找内存地址的范围)是32位,如果是8位系统,他的寻址范围就是2的8次方,他的寻址范围是256,也就是说有256个内存地址,每个地址里又有8位空间,因此256个地址X8位 ...

  2. 32位操作系统单进程最大使用4G内存

    32位操作系统单进程最大使用4G内存 参考文献: 有此疑问的原因:在看jvm书籍时,碰到了介绍"直接内存"的内容,直接内存不是虚拟机运行时数据区的一部分,所以也就不是jvm名义上管 ...

  3. 台式计算机内存可以扩展到多大,64位电脑系统可以支持多大内存【详细介绍】...

    电脑最大支持多大内存条? 很多小白朋友对这方面的知识并不了解,导致走了很多弯路,其实电脑支持的内存位数取决于处理器.系统位数.主板等,不懂不要紧,今天小编给大家分享下详细的电脑最大支持多大内存条的相关 ...

  4. 计算机支持最大内存大小,64位电脑系统可以支持多大内存【详细介绍】

    电脑最大支持多大内存条? 很多小白朋友对这方面的知识并不了解,导致走了很多弯路,其实电脑支持的内存位数取决于处理器.系统位数.主板等,不懂不要紧,今天小编给大家分享下详细的电脑最大支持多大内存条的相关 ...

  5. 64位 计算机 最大内存,win10 64位最大支持内存是多少_win10系统最高支持多大内存...

    许多用户认为,win10电脑应该内存越大那么运行速度也就会越快,因此常常会给自己的win10 64位系统增加内存条,可是有些用户可能不知道,win10系统所能承受的内存空间也是有限制的,那么win10 ...

  6. linux系统支持最大内存,Linux基础:如何找出你的系统所支持的最大内存

    大多数情况下你可以从BIOS.产品目录或者干脆手动找出你的系统所持的最大内存.这里,我们介绍一种简单有用的技巧--使用dmidecode来找出系统支持的最大内存,这样你就无需打开机箱或者参照BIOS和 ...

  7. 华为9x升级鸿蒙,荣耀9X升级鸿蒙2.0系统截图曝光:4G内存流畅度照样起飞!

    原标题:荣耀9X升级鸿蒙2.0系统截图曝光:4G内存流畅度照样起飞! 不知道大家是否还记得发布于两年前的华为荣耀9X手机?这款手机可谓是华为的里程碑机型,它打破了华为千元机不能买的行业共识,是当时名副 ...

  8. 32位系统能够识别多达内存_向多达17位用户学习

    32位系统能够识别多达内存 by Jacob Evelyn 雅各布·伊夫林(Jacob Evelyn) 四个开源课程-来自多达17个用户 (Four open source lessons-from ...

  9. 为什么32位计算机只能够使用4G内存

    在此之前先来了解一些计算机存储单位之间的关系以及计算机系统结构和PC硬件方面的一些知识. 一.计算机存储单位之间的关系 位 bit (Binary Digits):存放一位二进制数,即 0 或 1,最 ...

最新文章

  1. Matplotlib基础绘图功能 — 以折线图为例
  2. 第二节课作业150206309
  3. 远程连接CentOS的MySQL报错:Can't connect to MySQL server on 'XXX' (13)
  4. 转载:比Python快100倍,利用spaCy和Cython实现高速NLP项目
  5. 防抖和节流(白话版)
  6. leetcode面试题 16.04. 井字游戏
  7. 使用GCC生成无格式二进制文件(plain binary files)
  8. c模拟内存分配算法(首次适应算法,最佳适应算法,最坏适应算法)
  9. css取消聚焦边框[Chrome,Safari]
  10. NLP学习—21.自注意力机制(Self-Attention)与Transformer详解
  11. 将PICTUREBOX中显示的图片,存入数据库中
  12. JAVA项目实战开发电商项目案例(一)前后端项目分离
  13. 台达b2伺服modbus通讯_谁用电脑与台达ASDA-B2伺服通讯上-专业自动化论坛-中国工控网论坛...
  14. CentOS 5.5 安装 Python 2.7_老范的空间_百度空间
  15. redo log详解
  16. Burp Proxy
  17. 上海证券交易所云平台移动行情服务测试项目
  18. collection接口
  19. Python:实现graham scan葛立恒扫描法算法(附完整源码)
  20. 用Python做数据分析之数据处理及数据提取

热门文章

  1. 产品经理岗位职责说明_技术负责人岗位职责,五大方面,超越岗位抓住未来才是技术大牛...
  2. python画散点图对散点阴影扩充_Python金融应用之图表制作(三)
  3. 03-NSPredicate谓词
  4. UIView Animation
  5. (二)spring cloud微服务分布式云架构 - 整合企业架构的技术点
  6. 最常用的Linux命令
  7. linux 服务器FTP服务安装教程
  8. CCIE-MPLS基础篇-实验手册
  9. 【原】Java学习笔记020 - 面向对象
  10. SPOJ 1811 LCS [后缀自动机]