内存字节序
一. 字节顺序:数据在内存中的存放顺序。分为小端(Little endian)和大端字节顺序(Big endian)。
数据在内存中是一个字节一个字节来存储的,因为一个内存单元的大小就为一个字节。
1. 小端顺序:低字节数据存放在内存低地址处,高字节数据存放在内存高地址处。
2. 大端顺序:高字节数据存放在低地址处,低字节数据存放在高地址处。
如INT型数据0x12345678在内存中的存放顺序为:
小端顺序为:78 56 34 12
大端顺序为:12 34 56 78
二.主机字节序
不同的CUP以及不同的操作系统上的字节序不一样,这个就叫主机字节序。
处理器 操作系统 字节排序
Alpha 全部 Little endian
HP-PA NT Little endian
HP-PA UNIX Big endian
Intelx86 全部 Little endian <-----x86系统全是小端字节序系统
Motorola680x全部 Big endian
MIPS NT Little endian
MIPS UNIX Big endian
PowerPC NT Little endian
PowerPC 非NT Big endian <-----PPC系统是大端字节序系统
RS/6000 UNIX Big endian
SPARC UNIX Big endian
IXP1200 ARM核心 全部 Little endian
三.网络字节序
网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big endian排序方式。