关于内存地址的一些理解

时间:2025-02-24 18:38:47

首先,必须要知道内存地址只是一个编号,如1000H,代表一个内存空间。在计算机中存储器的容量是以字节为基本单位的。也就是说一个内存地址代表一个字节(8bit)的存储空间。

例如经常说32位的操作系统最多支持4GB的内存空间,也就是说CPU只能寻址2的32次方(4GB),注意这里的4GB是以Byte为单位的,不是bit。也就是说有4G=4*1024M(Byte)=4*1024*1024Kb(Byte)=4*1024*1024*1024bit(Byte),即2的32次方个8bit单位。

例如经常可以在一些地方看到内存地址0x0001,在另外一些地方内存地址又变成了0x00000001。其实这两种地址都是表示的编号为1的内存地址,都是代表一个8bit的存储空间。

在作数据结构或组成原理试题时我们经常会见到内存地址为:1000H或100CH的写法,其中的后缀H代表该内存地址为16进制内存地址。内存地址单元在计算机内部也是以二进制表示的,但二进制数过长,不便于计算。故一般情况下都用十六进制表示,这样更快捷、高效。在代码中用数制后缀表示一个特定的值或存储单元,编译时,由编译器负责转换和计算。常用的数制后缀如下:
二进制:B(Binary)
八进制:O(Octal),为了和“0”区别开,通常记为Q
十进制:D(Decimal),如果没有任何数制后缀,默认为十进制数
十六进制:H(Hexadecimal)