大小端存储的故事源自于《格列佛游记》(Gulliver's Travels),这是爱尔兰作家乔纳森·斯威夫特(Jonathan Swift)于1726年所著的一部讽刺小说。在其中,主人公格列佛(Lemuel Gulliver)游历到一个名为 "利里普特"(Lilliput)的岛屿。在 "利里普特" 岛上,有两个派别:大端族和小端族,他们之间发生了长期的争斗。这两个派别之间的分歧源于如何打开鸡蛋的方式:大端族主张从大头砸开蛋壳,小端族则主张从小头砸开蛋壳。
在计算机中,数据的存储方式通常分为大端序(Big-Endian)和小端序(Little-Endian)两种方式。这两种方式涉及到多字节数据在内存中的存储顺序。
-
大端序(Big-Endian):在大端序中,数据的高位字节存储在低地址内存中,而低位字节存储在高地址内存中。因此,多字节数据的最高有效字节存储在最低内存地址处。这种方式类似于将数字从左到右排列。
-
小端序(Little-Endian):在小端序中,数据的低位字节存储在低地址内存中,而高位字节存储在高地址内存中。因此,多字节数据的最低有效字节存储在最低内存地址处。这种方式类似于将数字从右到左排列。
举例来说,对于十六进制数 0x12345678:
-
在大端序中,它会以字节为单位按照内存地址从低到高依次存储,即 12 34 56 78。
-
在小端序中,它会以字节为单位按照内存地址从低到高反向存储,即 78 56 34 12。
以下是在我Intel i7 x64 vs2019中显示内存中的结果,高位字节在内存地址高位,低位位字节在内存地址低位。

最低0.47元/天 解锁文章
1725

被折叠的 条评论
为什么被折叠?



