请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1


Posted in 面试题 onJuly 16, 2015
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宽的数0×1234在Little-endian模式CPU内存中的存放方式(假设从地址0×4000开始存放)为:
内存地址 存放内容
0×4000 0×34
0×4001 0×12
而在Big-endian模式CPU内存中的存放方式则为:
内存地址 存放内容
0×4000 0×12
0×4001 0×34
  32bit宽的数0×12345678在Little-endian模式CPU内存中的存放方式(假设从地址0×4000开始存放)为:
内存地址 存放内容
0×4000 0×78
0×4001 0×56
0×4002 0×34
0×4003 0×12
而在Big-endian模式CPU内存中的存放方式则为:
内存地址 存放内容
0×4000 0×12
0×4001 0×34
0×4002 0×56
0×4003 0×78
联合体union的存放顺序是所有成员都从低地址开始存放,面试者的解答利用该特性,轻松地获得了CPU对内存采用Little-endian还是Big-endian模式读写。如果谁能当场给出这个解答,那简直就是一个天才的程序员。

Tags in this post...

面试题 相关文章推荐
开发中都用到了那些设计模式?用在什么场合?
Aug 21 面试题
必须要使用游标的SQL语句有那些
May 07 面试题
几道数据库的面试题或笔试题
May 31 面试题
什么是Linux虚拟文件系统VFS
Aug 25 面试题
Linux管理员面试经常问道的相关命令
Apr 29 面试题
测试驱动开发的主要步骤是什么
Dec 10 面试题
如何写一个自定义标签
Dec 28 面试题
Java语言程序设计测试题改错题部分
Jul 22 面试题
Unix/Linux开发面试题
Aug 16 面试题
Servlet如何得到服务器的信息
Dec 22 面试题
什么是ESB?请介绍一下ESB?
May 27 面试题
一套带答案的C++笔试题
Jan 10 #面试题
写一个方法1000的阶乘
Nov 21 #面试题
一套VC试题
Jan 23 #面试题
C语言50道问题
Oct 23 #面试题
普天C++笔试题
Mar 20 #面试题
华美博弈C/VC工程师笔试试题
Jul 16 #面试题
联想C++笔试题
Jun 13 #面试题
You might like
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
PHP 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
php调用shell的方法
2014/11/05 PHP
Yii2 GridView实现列表页直接修改数据的方法
2016/05/16 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
PHP7 错误处理机制修改
2021/03/09 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
Prototype Selector对象学习
2009/07/23 Javascript
javascript textContent与innerText的异同分析
2010/10/22 Javascript
javascript对JSON数据排序的3个例子
2014/04/12 Javascript
js确认删除对话框适用于a标签及submit
2014/07/10 Javascript
Javascript中的getUTCDay()方法使用详解
2015/06/10 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
2018/07/20 Javascript
js实现盒子移动动画效果
2020/08/09 Javascript
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
Python实用日期时间处理方法汇总
2015/05/09 Python
python实现推箱子游戏
2020/03/25 Python
python 列表递归求和、计数、求最大元素的实例
2018/11/28 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
加拿大著名时装品牌:SOIA & KYO
2016/08/23 全球购物
浙大毕业生自荐信
2014/01/26 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
社会公德演讲稿
2014/05/20 职场文书
学期个人自我总结
2015/02/13 职场文书
搬迁通知
2015/04/20 职场文书
工厂员工辞职信范文
2015/05/12 职场文书
教你怎么用Python监控愉客行车程
2021/04/29 Python
python随机打印成绩排名表
2021/06/23 Python
Python 视频画质增强
2022/04/28 Python