字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序。常见的字节序有Little Endian和Big Endian两种。
- Little Endian:将低序字节存储在起始地址
- Big Endian:将高序字节存储在起始地址
为了便于在两种系统中传输数据,有了字节序转换的概念,传输前将多个字节转换成与对方一致的存储顺序。
字节序转换的基本转换函数有以下四个。
#define g_htonl() // 32位主机字节序转换成网络字节序
#define g_htons() // 16位主机字节序转换成网络字节序
#define g_ntohl() // 32位网络字节序转换成主机字节序
#define g_ntohs() // 16位网络字节序转换成主机字节序
GLib提供的其他转换函数与以上四个函数大致相仿,只不过一次转换的字节数不同或者是按基本类型进行的转换。