你的机器是大端还是小端?
来源:互联网 发布:港股实时行情软件 编辑:程序博客网 时间:2024/04/27 05:19
你的机器是大端还是小端?——测试一下你就知道。
大端模式(Big-endian):
是指数据的低位(就是权值郊县的后面那几位)保存在内存的高地址中;
而数据的高位,保存在内存的低地址中。
这样的恶存储方式有点儿类似把数据当做字符串顺序处理:地址由小向大增加,而数据从高位往低位放。
小端模式(Little-endian):
是指数据的低位保存在内存的低地址中;
而数据的高位保存在内存的高地址中,和我们的逻辑方式一致。
补充一些知识点:
1、内存的地址:从左往右、从上往下依次增大;
2、数据:左边是高位,右边是低位。
判断是大小端的方法:
1、利用指针强制类型转换;
2.、利用共用体所有数据共用同一块地址空间
具体实现:
第一种方法:利用指针进行强制类型转换
#include<stdio.h>int check_endian(int a){char *p = (char*)&a;//用指针p强制让它指向a的低地址,才能知道p拿到的是a的低位还是高位。if (*p == 1){ printf("你的机器是 Little-endian"); }else{printf("你的机器是 Big-endian");}return 0;}int main(){int a = 1;check_endian(a);return 0;}
第二种方法: 利用共用体所有数据共用同一块地址空间
#include<stdio.h>union A{char c;//内存按字节存储int a;}A;int main(){A.a = 1; //共用体占用的内存大小是最大元素所占内存大小if (A.c==1){printf("你的机器是 Little-endian");}else{printf("你的机器是 Big-endian");}return 0;}
联合体union的存放顺序是所有成员都从低地址开始存放,所以很容易就判别出机器的大小端了。
0 0
- 你的机器是大端还是小端?
- 一个简单的程序教你检测你的机器是大端还是小端?
- 测试你的机器是大端规则还是小端规则
- 判断机器是大端还是小端
- 如何判断机器是大端还是小端
- 题目:如何判断一个机器是大端还是小端
- 如何判别机器是大端还是小端
- C实现当前机器模式是大端还是小端
- 判断一个机器是大端存储还是小端存储
- 写一个程序判断机器的的数据表示采用的是大端还是小端?
- 如何确定一个机器的字节顺序是大端还是小端
- 如何确定一个机器的字节顺序是大端还是小端
- 如何确定一个机器的字节顺序是大端还是小端
- 判断一个机器使用的是大端存储还是小端存储
- 如何测试你的平台是大端字节序还是小端字节序
- 怎样判断你的电脑是大端字节序还是小端字节序
- 如何测试你的系统是大端还是小端模式
- 测试自己的系统是大端还是小端
- UVA-11624-Fire!(多点BFS)
- sql复杂实例
- (复习)图论--最小生成树--Prim算法
- 实现PHP服务器+Android客户端(Retrofit+RxJava)第六天推送的实现
- How a Kalman filter works, in pictures (译文)
- 你的机器是大端还是小端?
- POJ-2709-Painter(贪心)
- 极限学习机︱R语言快速深度学习进行回归预测
- Java并发多线程学习笔记
- 微信扫码支付notify_url回调接收通知问题
- 移动硬盘提示格式化的处理
- c++ primer 5ed 15.9文本查询程序再探
- hdu3642 Get The Treasury--线段树 & 扫描线 & 面积并(待解决)
- VerticalImageSpan,垂直居中的ImageSpan