首先需要了解知识:
1.字节序
(1)小端字节序,数值低位存储在内存的低地址,高位存储在内存的高地址。
(2)大端字节序,数值高位存储在内存的低地址,低位存储在内存的高地址。
主机字节序,即CPU存储数据时采用的字节顺序。
转换方式:
1.64位数值的转换
使用联合体union
在使用联合体时需要根据联合体的特性,联合中所有成员,最终引用的是内存中相同的位置,其长度为最长成员的长度。
2.常用系统调用
在各文章中经常出现使用下面四个C标准库函数进行字节序间的转换。
uint32_t htonl(uint32_t hostlong); //把uint32_t类型从主机序转换到网络序
uint16_t htons(uint16_t hostshort); //把uint16_t类型从主机序转换到网络序
uint32_t ntohl(uint32_t netlong); //把uint32_t类型从网络序转换到主机序
uint16_t ntohs(uint16_t netshort); //把uint16_t类型从网络序转换到主机序
大概内容如上
标签:转换,字节,主机,uint16,内存,uint32,函数 From: https://www.cnblogs.com/wwwstar-2022/p/16770451.html