首页 > 编程知识 正文

主存地址空间大小与主存容量(关于内存地址和内存空间的理解)

时间:2023-05-04 04:37:26 阅读:121945 作者:47

1 .内存地址由4位十六进制和8位十六进制表示的区别。 例如,写在一本书上的内存地址为0x0001,写在另一本书上的内存地址为0x00000001,这种情况很常见。 既然显示的都是1的内存地址,为什么一个以4位16进制显示,另一个以8位16进制显示呢? 首先,必须知道内存地址只是一个数字,表示内存区域。 这个空间有多少? 原来在计算机上,内存的容量以字节为基本单位。 也就是说,存储器地址表示1字节(8bit )的存储区域。

例如,32位操作系统通常支持高达4GB的内存空间。 也就是说,CPU只能寻址2的32次方(4GB )。 请注意,这里的4GB是字节单位,不是位。 也就是说,有4g=4* 1024 m (字节)=4*1024*1024kb (字节)=4*1024*1024kb字节(8bit ) ),即2的32次方个8bit单位。

因此,4位十六进制表示的内存地址和8位十六进制表示的内存地址实际上只是表示8bit的存储空间。

为什么一个内存地址用4位十六进制表示,另一个内存地址用8位十六进制表示,这取决于硬件环境。 个人理解:某些CPU只能寻址16位(16条地址线),因此用4位十六进制表示地址就足够了。 某些CPU只能寻址32位(32条地址线),因此使用8位十六进制数。

另外,请注意210=1024

1G=1024 M

1M=1024 KB

1kb=1024 b (字节) )

1字节=8位

2 .了解内存。

程序和数据通常存储在硬盘等存储器中,无论打开还是关闭都存在,不会丢失。 硬盘上有很多东西可以保存,但数据传输速度很慢。 因此,如果需要运行程序或打开数据,这些数据必须从存储(如硬盘)传输到另一个容量较小但速度非常快的存储,然后再发送到CPU进行处理。 这中间的存储器是内存。

任何存储器、软盘、硬盘、光盘或存储器都有地址。 为了保存数据,需要为一定单位的数据分配地址。 只有有地址,程序才能找到这些数据。 这一点我很理解。 想想你家为什么有门牌号。

要学习编程,你必须完全了解内存的地址。 我们编程中所有行的代码,代码中使用的所有数据,都必须在内存中有其映射地址。 当然,你不需要知道内存是如何寻址的。 那是计算机类的另一门课——操作系统。

存储器地址:

计算机将所有信息数字化,所以我知道自己把数据和命令记录在内存中的哪个位置。

请看看以下示例:

让计算机在内存中记住“hxdby”这个名字,可以表示为:

在第一行中,每一格表示一段内存,而格子里的内容是这段内容记下的数据;第二行中每一格内数字就是对应的内存的地址。
可能有人会啄磨:为什么一个“丁”字(“小”“明”两字也一样)占用两个内存地址呢?这是因为汉字在一个地址(位置)里呆不下,必须放在连续的两个地址空间内。那么,什么东西可以放在单独的一个内存地址里呢?像英文的里字母,比如’A’, 像阿拉伯数字:比如’1’,可以,而且就是放在一个内存地址里。假设有一字符串“ABC”,被记在内存里,可示意为(这次我们假设从内存地址2000H处记起):

现在我们提几个问题:

计算机记住”丁”字的内存地址是多少? 答案是:1000H。请见上图

我们一直在说,在计算机中,所有信息都被数字化为2进制的0、1,所以,“hxdby”这个名字被也应该是一串:0001 0010 0111 0101……,可是在中图所画出的,计算机内存里记的,仍是“hxdby”三个字啊。

下面是解释,我们只举一个字”丁”讲解。我们假设在那一串里的 0001 0010 0111 0101 对应的是 “丁” 字,那么有:

让我们把字母’A’对应的图也画出来:

在上面的两个图中:

第一行分别是“丁”和“A”,它是给人看的。

第二行则是一串的的0和1,这才是计算机内存中实际存储的数据。

第三行是内存的地址。并不是每个0和1所占的位置都被编上地址。而是每8个才拥有一个地址。

关于第三行,你可以这样理解,门牌号是一个家庭分配一个,每家每户内还有客厅卧室,这些就没有地址了。

可见:

‘丁’的确是由一串0、1组成的。更确切地,从图上可以看出‘丁’是由16位0和1组成。这16数都存放在2个内存地址里。

‘A’也一样,它是由8位0、1组成的。占1个内存地址。

总结:内存地址是内存当中存储数据的一个标识,并不是数据本身,通过内存地址可以找到内存当中存储的数据。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。