如何简单判断大小端
来源:互联网 发布:入骨相思知不知txt微盘 编辑:程序博客网 时间:2024/04/30 13:28
在平时的软件开发过程中,尤其是网络通信这方面,经常要考虑大小端的问题,所谓大小端简单的说,就是CPU的架构不同,导致多字节的数据
在内存中的存储结构不同,同样单字节的也需要考虑比特位的顺序问题。举个例子,比如一个int型的整数,占4个字节,那么在内存中是如何存储的呢
对于小端的CPU来说,是依照高字节的存储在低内存地址,低字节的存储在高内存地址上, 大端的情况正好是相反的。
以0x12345678为例,大端情况在内存中是这样存储的 |0x12 |0x34 |0x56 |0x78,内存地址由低到高
在网络通信时,定义的网络字节序则是按照大端那样存储的,所以有时候需要进行字节序的转换 常用的函数有ntohs, ntohl, htons, htonl等
回到正题来,那么我们怎么能简单判断出是大端还是小端,常用的方法就是通过共用体union的特性来作判断,可以参考linux里面的源码定义的宏
static union { char c[4]; unsigned long l; } endian_test = { { 'l', '?', '?', 'b' } };#define ENDIANNESS ((char)endian_test.l)
这样的话,我们就可以用这个宏来判断大小端
if ('l' == ENDIANNESS )/* 小端情况 */{ do something;}else{ do something;}
- 如何简单判断大小端
- 如何判断大小端
- 如何简单的判断机器的大小端字节序
- 如何判断主机大小端
- 最简单判断系统大小端
- 如何判断CPU的大小端
- 如何判断电脑CPU大小端
- 【Endian】C语言的大小端及其简单的判断。
- 如何判断机器的大小端的问题
- 如何在客户器端判断上传文件的大小
- 快速判断大小端
- 判断大小端
- 判断大小端
- 大小端模式判断
- 判断大小端
- 判断系统大小端
- 判断大小端
- 大小端的判断
- iOS 平台下写网络视频监视器中的总结
- sql 查询慢的48个原因分析。
- IE下div使用margin:0 auto;不居中
- 数组!!!
- 金融
- 如何简单判断大小端
- 版本升级需要进行的测试、备份
- 在iOS上使用ffmepg
- POJ3250 牛的视野(单调栈)
- 金融书籍经典
- c++ typedef
- smack api学习
- Linux shell
- Android反编译和打包签名