每日一题(51)—— 大小端判断
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1。
int checkCPU()
{{union w{ int a;char b;} c;c.a = 1;return (c.b == 1);}
}
分析:
嵌入式系统开发者应该对Little-endian和Big-endian模式非常了解。采用Little-endian模式的CPU对操作数的存放方式是从低字节到高字节,而Big-endian模式对操作数的存放方式是从高字节到低字节。例如,16bit宽的数0x1234在Little-endian模式CPU内存中的存放方式(假设从地址0x4000开始存放)为:
内存地址 |
存放内容 |
0x4000 |
0x34 |
0x4001 |
0x12 |
而在Big-endian模式CPU内存中的存放方式则为:
内存地址 |
存放内容 |
0x4000 |
0x12 |
0x4001 |
0x34 |
32bit宽的数0x12345678在Little-endian模式CPU内存中的存放方式(假设从地址0x4000开始存放)为:
内存地址 |
存放内容 |
0x4000 |
0x78 |
0x4001 |
0x56 |
0x4002 |
0x34 |
0x4003 |
0x12 |
而在Big-endian模式CPU内存中的存放方式则为:
内存地址 |
存放内容 |
0x4000 |
0x12 |
0x4001 |
0x34 |
0x4002 |
0x56 |
0x4003 |
0x78 |
联合体union的存放顺序是所有成员都从低地址开始存放,面试者的解答利用该特性,轻松地获得了CPU对内存采用Little-endian还是Big-endian模式读写。
每日一题(51)—— 大小端判断相关推荐
- 表达式求值问题 数据结构_【每日一题51】实际问题与一次函数 看图象求表达式 由表达式求值...
关注"中考数学当百荟",感谢您的支持! 51.如图,折线MNP表示汽车耗油量y与速度x之间的关系,其中30≤x≤120.已知线段NP表示函数关系中,速度每增加1 km/h,耗油量增 ...
- 两种大小端判断的方式
网络通信是按照字节流进行数据交换的,主机根据不同的CPU型号可能是大段存储,也可能是小端存储.而网络字节序在TCP/IP协议中已经规定好了,采用大端的排序方式. 所以网络通信中一般将需要传输的整数型值 ...
- linux查看编译器的大小端,Linux系统大小端判断
大端模式 大端模式,是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中. 小端模式 小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中. 判断程序 文件: ...
- 大小端判断及相互转化
//小端转化为大端,..大端转化为小端也是一样的. #include <stdio.h> int main() { int i = 0x11223344; char * a = (char ...
- 2021-10-17 CAN J1939 DM1 排放及诊断报文大小端判断
1/大小端标志位 SPN CONV 2/dm x 报文 不同车厂定义不一样/直接透传由客户端程序读取车辆型号后再做数据解包 3/模式 2 由客户端 rs485 发送指令 至 modbus 输入寄存器 ...
- 每日一题:字符串系列---判断一个字符串是否是对称字符串 * 例如“abc“不是对称字符串,“aba“、“abba“、“aaa“、“mnanm“是对称字符串
判断一个字符串是否是对称字符串 * 例如"abc"不是对称字符串,"aba"."abba"."aaa"."mn ...
- 大小端判断和网络字节序
- LeetCode.每日一题今日份_392.判断子序列
/* 本题询问的是,ss 是否是 tt 的子序列,因此只要能找到任意一种 ss 在 tt 中出现的方式,即可认为 ss 是 tt 的子序列.而当我们从前往后匹配,可以发现每次贪心地匹配靠前的字符是最优 ...
- 非传递骰子(春季每日一题 51)
为了消磨牛棚里的时光,奶牛们喜欢玩简单的骰子游戏. 其中一种游戏使用两个骰子 XXX 和 YYY 进行. 两个骰子均被投掷,获胜的骰子是显示的数字较大的骰子. 如果两者显示相同的数字,则重新投掷(只要 ...
最新文章
- 第三章 “我要点爆”微信小程序云开发之点爆方式页面和爆炸之音页面制作
- Python技术分享:numpy库的安装教程
- 博客园 CSS 代码定制
- mac设置首页访问php,mac系统下php项目除了首页全访问不了
- 联邦学习安全与隐私保护综述 A survey on security and privacy of federated learning
- 我花了一年时间来学机器学习
- jQuery 3.5.0 发布
- python爬虫xpath提取数据_python爬虫的页面数据解析和提取/xpath/bs4/jsonpath/正则(1)...
- python指数运算是不是有问题_为什么在Python 3中复指数运算如此之快?
- 常见数据分析误区:不要让数据误导你!
- CORBA版HelloWorld
- win10 我的世界java_Windows10系统怎样运行我的世界
- 杭州/北京内推 | 阿里达摩院招聘视觉生成方向学术实习生(人才计划)
- 响应式开发原理及Bootstrap栅格布局详解
- python抢课_python实现强智科技教务系统抢课(两种方法)
- 软件语音验证码webservice_明明发送了却迟迟收不到短信验证码?
- GBase 8c技术特点
- IS-IS LSDB详解(华为设备)
- AD18 PCB高亮
- vue项目首屏加载优化
热门文章
- 大恶人吉日嘎拉之走火入魔闭门造车之.NET疯狂架构经验分享系列之(十二)多语言支持...
- ScaleAnimation动画
- django-redis中redis.conf配置详细说明
- linux环境部署ltmj,Linux系统安装与简单配置 图文.docx
- 机器学习中qa测试_如何对机器学习做单元测试
- flask-SQLAlchemy 使用 session.commit() 处理异常回滚
- 智能外呼系统相关资料总结
- 读中文_挑战来了!康辉喊你读中文十级绕口令!
- sprintf用法详解
- Linux下解压:tar、rar、7z命令