首页 > 编程知识 正文

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

时间:2023-05-05 19:11:32 阅读:121926 作者:2499

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字节(字节) ),即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 bit

2 .了解内存。

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

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

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

存储器地址:

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

请看看以下示例:

让计算机记住“沉默的外套”这个名字,可以表示为:

在第一行中,各单元表示存储器,单元的内容是该内容记录的数据; 第2行各单元内的数字是对应存储器的地址。

可能会有人啄磨。 为什么一个“丁”字(“小”“明”字也一样)会占用两个存储器地址呢? 这是因为汉字不能容纳在一个地址(位置)里,必须放置在连续的两个地址空间里。 那么,放入另一个内存地址的是什么呢? 英语中的中文字,比如’a’,阿拉伯数字:比如’1’,很好。 然后,放入内存地址。 如果有字符串“ABC”并将其存储在内存中,则可以表示为(

现在我要问你几个问题:

计算机记住“丁”这个单词的内存地址是什么? 答案是1000H。 请看上面的照片

因为计算机将所有信息数字化为二进制0、1,所以“沉默的外套”的名称也应该是一系列“0001 0010 0111 0101……”,正如中图所示,计算机的

是说明。 我只列举一个词来说明“丁”。 假设其中的0001 0010 0111 0101对应于“丁”字:

让我们也画一张字母“a”对应的图:

在上面的两幅图中:

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

第二行是一系列0和1,这就是计算机内存中实际存储的数据。

第三行是存储器的地址。 并不是按0和1所占的位置分配地址。 每八个有地址。

对于第三行,可以理解为每个家庭分配一个地址,每个家庭都有一个客厅,这些都没有地址。

可显示:

“丁”确实是一系列的0、1组成的。 更准确地说,您会发现“丁”由16位0和1组成。 这16个数据都存储在两个内存地址中。

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

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

转载于:https://www.cn blogs.com/VIP ler/p/4282584.html

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