大端序(Big-endian) 在大端序中,一个多字节值的最高位字节(即“大端”)存储在最低的内存地址处,其余字节按照大小递减的顺序存储。
例如,假设有一个16位的整数0x1234,如果使用大端序存储,内存中的布局将会是:
12地址1: 0x12地址2: 0x34
大端序类似于我们书写和阅读多位数的方式,最高位(千位、百万位等)在最前面。
小端序(Little-endian) 在小端序中,一个多字节值的最低位字节(即“小端”)存储在最低的内存地址处,其余字节按照大小递增的顺序存储。
以同一个16位整数0x1234为例,如果使用小端序存储,内存中的布局将会是:
12地址1: 0x34地址2: 0x12
计算机处理字节序的时候,不知道什么是高位字节,什么是低位字节。它只知道按顺序读取字节,先读第一个字节,再读第二个字节。如果是大端字节序,先读到的就是高位字节,后读到的就是低位字节。小端字节序正好相反。