操作系统-内存管理-地址基础知识
计算机存储单位之间的关系
位 bit (Binary Digits):存放一位二进制数,即 0 或 1,最小的存储单位。
字节 byte:8个二进制位为一个字节(B),即1B = 8bit,最常用的单位。
计算机存储单位一般用B,KB,MB,GB,TB,PB,EB,ZB,YB,BB来表示,它们之间的关系是:
1B (Byte) = 8b(bit )
1KB (Kilobyte ) =2^10B =1024B
1MB (Megabyte ) =2^10KB =1024KB
1GB (Gigabyte ) =2^10MB =1024MB
1TB (Trillionbyte) =2^10GB =1024GB
1PB(Petabyte ) =2^10TB =1024TB
1EB(Exabyte ) =2^10PB =1024PB
1ZB (Zettabyte ) =2^10EB = 1024 EB
1YB (Yottabyte ) = 2^10ZB =1024 ZB
1BB (Brontobyte ) = 2^10YB =1024 YB
也就是说 1GB 等于 2 的 30 次方的Byte
问题
为什么32位机器对应的虚拟内存最大只能到 4G 呢, 这是如何算出来的?
过程推算
假如给你只有三位的地址空间,那么你能用这个三位的地址空间表示多大空间的内存呢,也就是三位里面,每位有两种结果,0或者1 ,总共 8 种结果(2的3次方),也就是说 32 位那么范围就是0到32个1 ,总共是 4GB 的内存大小
2^32B=2^(2+10+10+10)B=2^2*(2^10*2^10*2^10)B=4GB ( 由上面就可以知道 1GB = 2的30次方B )
延伸
假如存储体积来说 , 1个格子只能放0和1 , 分两部分 ,一部分是地址,一部分是储存空间
地址:32个格子
储存空间:4GB个格子
32个格子可以用来给 4GB 存储体积排编地址编号 , 那么地址长什么样呢 ? 0或者1是二进制, 要写很长, 不方便 ,我们一般用16进制来表示,
0x100000000 (1后面8个0)
操作系统分配的虚拟地址一般都是以 0x08048000
开始的 ,现在再来看这个地址就非常熟悉了 ,这绝对是 32位系统哇 !! 位数和我们刚才推算的一样
参考资料
- (为什么32位计算机只能够使用4G内存)[https://www.cnblogs.com/dolphin0520/archive/2013/05/31/3110555.html]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
2020-01-05 MySQL-简单了解InnoDB底层原理