大小端学习理解1.什么是大小端简单来说大端高位字节放在低地址小端低位字节放在低地址例如0x12345678拆开是四个字12345678放在大端小端的地址中地址0x10000x10010x10020x1003大端12345678小端785634122.大小端的区别在哪表达的意思都是相同的唯一的区别就是读取的顺序不一样打个比方中国人说地点大地方在前小地方在后陕西省西安市美国人说地点小地点在前大地点在后西安市陕西省顺序不同但含义是相同的3.判断当前机器使用大端还是小端在编译器中输入这一串代码看输出结果即可C语言#includestdio.hintmain(){unsignedintx0x12345678;unsignedchar*p(unsignedchar*)x;printf(%02X %02X %02X %02X\n,p[0],p[1],p[2],p[3]);return0;}4.大小端要注意什么单个字节没有大小端问题 例如字符串”Hi“不考虑大小端问题大小端不影响数值只是传字节的顺序不同对整数来说大小端转换就是整体把字节顺序倒过来跨平台传输要注意不同平台使用的是大端还是小端不然会出现传输数据全是反的情况5.大小端转换C语言htons() 主机序 → 网络序 16 位htonl() 主机序 → 网络序 32 位ntohs() 网络序 → 主机序 16 位ntohl() 网络序 → 主机序 32 位主机序本机所使用的端序不固定大端还是小端网络序固定为大端
阅读完成 · 觉得有帮助?