首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >内存中的最低和最高地址,其中最小可访问单元为4字节

内存中的最低和最高地址,其中最小可访问单元为4字节
EN

Stack Overflow用户
提问于 2012-02-26 05:40:53
回答 3查看 2.6K关注 0票数 0

一个问题被问到:“给定2^10字节的内存,其中4字节字是最小的可寻址单元,那么最低和最高地址是什么?”

最低的地址是0,答案键的最高地址是2^10-4,我想它应该是(2^10-1)/4,因为每4个字节都有地址?

EN

回答 3

Stack Overflow用户

发布于 2012-02-26 05:53:49

我猜提出这个问题的人被他自己的定义搞混了。实际上,如果“最小可寻址单元”是一个"4字节字“,那么在2^10字节中就有2^8个不同的地址,这意味着最高地址是2^8-1或255。

但在典型的计算机体系结构中,情况并非如此。最小的可寻址单元实际上是一个字节(因为所有地址都表示从“开始”开始的字节数),但有效地址只是那些除以4的地址。因此,0是有效地址,4是有效地址,但尝试使用3会导致异常。顺便说一句,这被称为“对齐”,不同的指令可能需要不同的对齐,从1到128,有时甚至更多。通常情况下,它是2的幂,因为它们很容易处理。

我想这个问题实际上是关于对齐的,但它的表达方式很尴尬。你也可以试着向你的老师询问这件事,他应该能够把事情说清楚。

票数 1
EN

Stack Overflow用户

发布于 2012-02-26 05:46:54

因此,您有2^10字节,即1024字节,即1MB。现在你的内存是4字节对齐的,所以第一个地址是: 0x4,最后一个地址是1020/4 = 255,这是十六进制的0xFF。

票数 0
EN

Stack Overflow用户

发布于 2012-02-26 05:47:32

你想要最高的地址,所以你的地址键是正确的。最高地址是您有足够的空间(4字节)来添加数据的位置。你的回答只会给出内存可以容纳的4字节数据项的数量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9448328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档