简单实现查看系统字节序
来源:互联网 发布:淘宝禁售商品有哪些 编辑:程序博客网 时间:2024/05/21 12:49
导语:
在计算机中间,不同的操作系统支持的字节序不同,简单来说:比如一个十六进制的数在内存中是怎样存储的 列:0x0102 在计算机中存储时 是 01 在低字节还是02 在低字节。我们可以通过如下程序实现
#include <stdio.h>int main(int argc , char ** agrv){ union{ short s; char c[sizeof(s)]; }un; un.s = 0x0102; if(sizeof(short) == 2) { if(un.c[0] == 1 && un.c[1] == 2) printf("big-endian\n"); else if(un.c[0] ==2 && un.c[1] == 1) printf("little-endian\n"); else printf("unknow\n"); } else printf("sizeof(short) = %d\n", sizeof(short)); return 0;}
中间的 union 是 C语言中的公用体,与 struct 体不同的是 结构体 中的每个值都有属于自己的存储区域,不会重合,而 union中的每个值公用一处存储区域,所以当我 在 使用 un.s = 0x0102 后 公用体就已经存储了0x0102, 当我使用 un.c[0],和 un.c[1] 时 由于访问的是与 un.s相同的内存区域,故取出来的值就是 我使用 un.s 存进去的值, 从而通过比较 un.c[0] 和 un.c[1] 的值 就可以知道0x0102 在内存中的存储顺序。最后可能有些 库里面的 short 的位数不为16位,所以可能得不到我们想要的结构需要更加深入的 请看 《unix 网络编程 套接口》
0 0
- 简单实现查看系统字节序
- 判断系统字节序
- 关于系统字节序
- 系统信息查看简单脚本
- 如何查看主机的字节序
- 简单的查看系统端口占用情况
- 查看系统中是否有简单木马
- 系统高低字节序和网络字节序的转换
- 字节查看器
- 字节查看器
- Java查看字节码
- 查看python字节码
- java查看字节码
- 字节码查看
- Python基础(7)——名片管理系统(实现了数据简单的存储、修改、删除、查看等)
- 网络图片查看器的简单实现
- 简单使用JQZoom实现放大查看图片
- jquery实现简单的图片查看器
- C++调用C函数与Extern "C"
- stm32:CT117E之LED篇
- 第一个c#程序
- [Hadoop]Hadoop上传本地文件到HDFS
- ERROR 1366 (HY000):Incorrect string value解决方案(亲测)
- 简单实现查看系统字节序
- 交换内容
- 控制器技术
- 解题报告 之 HDU4289 Control
- 【完全背包】寒冰王座
- Hibernate 缓存机制
- 基础总结篇之五:BroadcastReceiver应用详解
- BZOJ1087【状压DP】
- 学英语《每日一歌》之because of you