使用联合体判断大小端模式
1)联合体的概念和特征:union维护足够的空间来存放多个数据成员中的“一种”,而不为每一个数据成员都配置空间,在union中所有的成员共用同一个空间,同一时间只存储一个数据成员,最大的特征就是所有的数据成员具有相同的起始地址即联合体的基地址。
2)计算机中字节存储主要有两种:大端模式(Big_endian)和小端模式(Little_endian),从英文名字上可以明白,大端模式是从低地址开始,高位结束,(即高地址存地位,低地址存高位);小端模式是从高地址开始,低地址结束(与大端相反,)。
3)利用union中所有数据成员具有同样的起始地址的特点,通过一个int成员存储1,然后通过char成员来读取,即可巧妙地得出数据存放的方式,若通过char成员(即读取起始位置上的第一个字节)读取,若得出值为1,则说明是小端模式。
通过GCC编译运行,运行结果跟计算机有关,(arm大多是小端模式,网络字节序为大端模式.有的计算机支持两种模式,可通过设置来切换),在我机器上运行结果是:this is Little_endian
代码如下:
#include<stdio.h>
int checkBigLittle(){union{int a;char b;}c;c.a = 1;return (c.b == 1);
}
int main(){if(checkBigLittle() == 1)printf("is little\n");elseprintf("is big\n");return 0;
}
使用联合体判断大小端模式相关推荐
- 【一雪前耻!】两种方法判断大小端模式
废话不多说,直接上代码. 法一:指针法 #include <stdio.h>int main(){int a = 1;char p = *((char *) &a); ///< ...
- CPU大小端模式对C语言底层开发的影响
CPU大小端模式对C语言底层开发的影响 在嵌入式的c语言底层开发过程中,经常会遇到CPU大小端模式的问题,对底层软件的数据结构构建.数据解析.甚至功能实现上均有一定的影响,我自己在ECU的底层软件 ...
- 大小端模式以及两种判断方法
文章目录 基本概念 判断方法 END 基本概念 首先来看某百科定义: 大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中. 小端模式,是指数据的高字节保存在内存的高地址 ...
- 大小端模式的判断方法
1. 大小端模式 大端模式:数据的高字节存储在内存的低地址中. 小端模式:数据的低字节存储在内存的低地址中. 两种模式的区别就是数据在内存中是先存储高字节还是低字节,先存高字节就是大端模式,先存低字节 ...
- 大小端模式的快速判断方法
*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...
- 判断cpu大小端模式(c++代码实现)
首先来了解一下大小端模式. 大端模式:高位对应低地址,低位对应高地址 :换而言之,就是数字的高位存放在内存的低址地,低位存放在内存的高地址 小端模式:高位对应高地址,低位对应低地址 :即数字的高位存放 ...
- 什么是大小端,如何写程序判断大小端?
什么是大小端? 大小端又被成为 大端字节序 和 小端字节序 .大小端其实指的就是在数据如何存到内存中的方式. 大端(存储)模式 :是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中 ...
- C/C++ 关于大小端模式
大端模式: 数据的高字节存在低地址 数据的低字节存在高地址 小端模式: 数据的高字节存在高地址 数据的低字节存在低地址 如图,i为int类型占4个字节,但只有1个字节的值为1,另外3个字节值为 ...
- 如何判断小端模式和大端模式
用指针判断大小端 #include<stdio.h> int main(void) {int a = 1;char b = (*(char *)(&a));if(1 == b){p ...
最新文章
- c/c++/MFC 调用 js 函数代码
- 史上最全解读 | 飞桨模型库重大升级,主流算法模型全覆盖
- spark executor内存分配_二十二、Spark之图解Executor端内存管理
- factorymenu什么意思_MENU是什么意思
- kkt条件的matlab仿真,请教关于SVM中KKT条件的推导
- django select option拼接时value中空格后的内容被截断
- python每行乘列表_python – 在pandas数据帧中查找每行的两列列表中哪一列的最快方法...
- c语言win api函数,Win2K下的Api函数的拦截
- 员工主动辞职公司也要支付经济补偿金的17种情况
- linux eclipse qt5 ui_helloworld.h,转载Eclipse+qt的开发环境
- 出现java.lang.NoSuchMethodError错误的原因
- html rfftq15.gif,STM32F4xx固件库
- java 实例 按CGPA大小排列名字
- 我为何一直强调外包公司别去
- 【iOS开发】---- Reachability 网络监测
- Plotly中绘制三种经典的股票交易图表(含视频讲解)
- DNA存储技术—让信息保存万年
- 【工控老马】ASP问与答40篇
- CFA一级通过率如何?
- java录制视频_javacv开发详解之1:调用本机摄像头视频(建议使用javaCV最新版本)...
热门文章
- Android动画效果(二) 仿QQ点赞动画
- 日常备忘|Adobe软件|解决 PR 或 AE 启动不了桌面弹出 Crash 文件
- python第一天---------了解python
- 微信公众号自动回复消息如何跳转小程序
- wps中论文参考文献引用后,引用的后面无法再设置目录,解决方案
- 主流计算机编程语言之父---集锦
- 谷歌浏览器添加React Developer Tools和 Redux DevTools
- cnn卷积神经网络反向传播,cnn正向传播和反向传播
- lcd显示屏c语言程序设计,基于单片机的LCD显示器控制的设计.doc
- 一个人如何在一个陌生的城市生活生存下去!