端序(Endianness),又称字节序、尾序、位序。在计算机领域是指机器存放多字节数据的字节顺序。在涉及到低层数据存储和网络数据传输研究中都会涉及端序。
大端序(Big-Endian,大尾序):高位字节放在内存的低地址,低位字节放在内存的高地址。
小端序(Little-Endian,小尾序):低位字节放在内存的低地址,高位字节放在内存的高地址。
端序是与硬件的体系结构相关而与所使用的操作系统无关的概念,目前基本上所有x86系列的PC机都是小端序。
在32位机器上,对于数0x12345678来说,低层表示的方法因端序而排列不同:
判定方法
1. 将整形int强制转换char测试
1 | bool isBigEndian() |
2. 使用union,其所有成员共享同一个最大的内存地址。
1 | bool isBigEndian() |