1. 关键词
关键词:
C++ 大端 小端 数据转换 跨平台
大小端的定义:
大端(Big Endian)和小端(Little Endian)是指在计算机内存中存储多字节数据类型的字节顺序。以下是它们的区别:
大小端 | 定义 | 区别 | 示例(0x1234) |
---|---|---|---|
大端 | 数据的最高有效字节(Most Significant Byte, MSB)存储在内存的最低地址,而最低有效字节(Least Significant Byte, LSB)存储在内存的最高地址。 | 最高有效字节存储在最低地址<br/>又称:网络字节序 | 内存地址: 高 -> 低<br/>存储内容: 0x34 0x12 |
小端 | 数据的最低有效字节(Least Significant Byte, LSB)存储在内存的最低地址,而最高有效字节(Most Significant Byte, MSB)存储在内存的最高地址。 | 最低有效字节存储在最低地址<br/>又称:主机字节序 | 内存地址: 高 -> 低<br/>存储内容: 0x12 0x34 |
实现原理:
通过高低地址位的数据判断大端或小端。
应用场景:
- 网络传输协议中,大端和小端的字节序不同,需要转换为网络字节序。
- 不同平台的数据交换,需要转换为统一的字节序。
2. sysutil.h
3. sysutil.cpp
4. 测试代码
5. 运行结果
6. 源码地址
更多详细代码,请查看本人写的C++ 通用工具库: common_util, 本项目已开源,代码简洁,且有详细的文档和Demo。
本文由博客一文多发平台 OpenWrite 发布!