大端序(Big-endian)

​ 在大端序中,一个多字节值的最高位字节(即“大端”)存储在最低的内存地址处,其余字节按照大小递减的顺序存储。

​ 例如,假设有一个16位的整数0x1234,如果使用大端序存储,内存中的布局将会是:

地址1: 0x12
地址2: 0x34

​ 大端序类似于我们书写和阅读多位数的方式,最高位(千位、百万位等)在最前面。

小端序(Little-endian)

​ 在小端序中,一个多字节值的最低位字节(即“小端”)存储在最低的内存地址处,其余字节按照大小递增的顺序存储。

​ 以同一个16位整数0x1234为例,如果使用小端序存储,内存中的布局将会是:

地址1: 0x34
地址2: 0x12

​ 计算机处理字节序的时候,不知道什么是高位字节,什么是低位字节。它只知道按顺序读取字节,先读第一个字节,再读第二个字节。如果是大端字节序,先读到的就是高位字节,后读到的就是低位字节。小端字节序正好相反。