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

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

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

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

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


猜你喜欢

转载自blog.csdn.net/smallerxuan/article/details/80401195