1、什么是大、小端存储
- 大端模式(big-endian): 高位字节排放在内存的低地址端 ; 低位字节排放在内存的低地址段 (高低,低高)
小端模式 : 高字节高内存地址,低字节低内存地址
例:一个十六进制数 : 0x12345678,存储的起始地址为:0011AA66
地址偏移 | 大端模式 | 小端模式 |
---|---|---|
0x00 | 12 | 78 |
0x01 | 34 | 56 |
0x02 | 56 | 34 |
0x03 | 78 | 12 |
存储以字节为单位
2、网络字节序
网络字节序 : 大端模式 (TCP/IP规定好的数据表示格式,与具体的CPU类型,操作系统无关)
SO : 网络传输通信,以大端方式进行传输,传输到网络之前作数据模式转换预处理
3、大小端转换常用函数 (C)
uint32_t htonl(uint32_t host_long) //将32位的长整数从主机字节序转换成网络字节序
uint16_t htons(uint16_t host_short)
uint32_t ntohl(ui