关于内存地址与寻址

首先理解位与字节的区别:

①位(bit):计算机存储信息的最小单位。

②字节(Byte):计算机存储信息的基本单元,1Byte = 8 bit。

bit在大多数情况都以“了解硬件的工作原理”的方式出现的,Byte才是我们真正用于存储数据的单元,换句话说,我们存储的数据是精确到Byte而不会精确到bit。

所以内存可以看做是一小块一小块字节组成的,我们进行的寻址得到的最小单元是字节! 这和操作是系统是没关系的。也就是说,字节是计算机最小可寻址的内存单元。

但是和操作系统有关的是,用什么方式来表示内存中的地址!!

理论上:

  • 16位系统下,内存地址应当用一个16位二进制表示(转化为十六进制0x0000-0xFFFF),占2个字节。

  • 32位系统下,内存地址应当用一个32位二进制表示(转化为十六进制0x0000,0000-0xFFFF,FFFF),占4个字节。

  • 64位系统下,内存地址应当用一个64位二进制表示(转化为十六进制0x0000,0000,0000,0000-0xFFFF,FFFF,FFFF,FFFF),占8个字节

(不知道是不是这个原因,32位系统的指针的大小是4个字节,也就是32位,64位系统的指针大小是8个字节,也就是64位。指针也正是表示内存中地址的方式,所以从表面上看,两者是相互印证的关系。)

下面以连续存储两个int类型的变量为例。(int类型在32和64位系统中都占4个字节)
在这里插入图片描述

可以看出,区别仅仅是对内存单元的表示方式不一样。

所以32位系统和64位系统对内存的表示方式不一样,就导致了两者所能寻址的最大范围也就不一样。32位系统是2^32=4GB,而64位系统理论上能到2 ^64,可以看作是无穷大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值