感谢博主
字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序,通常有小端、大端两种字节顺序。小端字节序指低字节数据存放在内存低地址处,高字节数据存放在内存高地址处;大端字节序是高字节数据存放在低地址处,低字节数据存放在高地址处。
基于IAX86平台的PC机是小端字节序的,而有的嵌入式平台则是大端字节序的。因而对WORD/DWORD/QWORD等多于1字节类型的数据,在这些嵌入式平台上应该变换其存储顺序。通常我们认为,在空中传输的字节的顺序即网络字节序为标准顺序,考虑到与协议的一致以及与同类其它平台产品的互通,在程序中发数据包时,将主机字节序转换为网络字节序,收数据包处将网络字节序转换为主机字节序。
用文字说明可能比较抽象,下面用图像加以说明。比如数字0x12345678在两种不同字节序CPU中的存储顺序如下所示:
对于0x12345678,
Little endian:高地址<------->低:存储数据0x12 0x34 0x56 0x78
Big endian: 高地址<------->低:存储数据0x78 0x56 0x34 0x12
网络字节顺序采用big endian排序方式 IP 报文