关于数据的大端对齐和小端对齐

本文介绍了数据存储中的大端对齐和小端对齐的概念,解释了这两种存储方式与处理器设计的关系,并通过实例展示了x64架构下Windows平台的具体表现形式。

关于数据的大端对齐和小端对齐

 

       我们知道现行存储设备中都是以字节为存储单元来进行划分的,这和早期的实现的延续相关。不管是32位的存储器,还是64位的存储器,我们都习惯用字节进行度量,习惯性的说它们的存储单元是4字节的、8字节的。对于存储芯片一个存储单元对应着一个物理地址,但更准确的说应该是一个字节的存储区对应一个物理地址。对于存储在这些存储单元中的数据来说又是什么样的状态呢?

       现行的数据存储方式实际上是和处理器的设计相关的,有的处理器设计成大端存储,有的处理器设计成小端存储,与之相对应的有了大端对齐,小端对齐的说法。低地址存放低位数据,高地址存放高位数据,这样的存储方式被称之为小端对齐方式。与之相反的就是大端对齐了,但大端对齐的实现一般用在大型机所用的处理器中。

       这种说法,文字描述难以理解,太过抽象,不过代码和内存跟踪的方式却能够真实的将它们的本来面目展现在我们的面前。下图片中给出了x64架构下的Windows平台中使用VS集成环境的示例:


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值