32位数字0x12345678在内存中的表示形式为:
1)大端模式:
Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
网络上的数据都是以大端数据模式进行交互的
低地址 -------------------------> 高地址
0x12 | 0x34 | 0x56 | 0x78
2)小端模式:
Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端
我们常用的X86结构是小端模式
低地址 -------------------------> 高地址
0x78 | 0x56 | 0x34 | 0x12
如htons()、htonl()分别将16位、32位主机数据转换为网络字节序;ntohs()、ntohl()则分别将16位、32位网络字节序转换为主机数据。