请写一个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...

面试题 相关文章推荐
一套VC试题
Jan 23 面试题
对于没有初始化的变量的初始值可以作怎样的假定
Oct 12 面试题
计算s=f(f(-1.4))的值
May 06 面试题
"引用"与指针的区别是什么
Sep 07 面试题
TCP协议通讯的过程和步骤是什么
Oct 18 面试题
如何判断计算机可能已经中马
Mar 22 面试题
shell程序中如何注释
Jan 28 面试题
Linux机考试题
Jul 17 面试题
软件设计的目标是什么
Dec 04 面试题
介绍一下XMLHttpRequest对象的常用方法和属性
May 24 面试题
介绍下java.util.Arrays类
Oct 16 面试题
Java程序员面试题
Jul 15 面试题
一套带答案的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
详细介绍:Apache+PHP+MySQL配置攻略
2006/09/05 PHP
php通过array_merge()函数合并关联和非关联数组的方法
2015/03/18 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
PHP中时间加减函数strtotime用法分析
2017/04/26 PHP
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
JavaScript 事件绑定及深入
2015/04/13 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
2015/04/16 Javascript
JavaScript实现Iterator模式实例分析
2015/06/09 Javascript
jQuery实现的导航下拉菜单效果
2016/07/04 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
js轮播图的插件化封装详解
2017/07/17 Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
2017/08/11 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
Node.js实现一个HTTP服务器的方法示例
2019/05/13 Javascript
微信小程序云开发 生成带参小程序码流程
2019/05/18 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
2019/06/11 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
Python爬虫代理IP池实现方法
2017/01/05 Python
Python的CGIHTTPServer交互实现详解
2018/02/08 Python
在PyCharm中批量查找及替换的方法
2019/01/20 Python
详解python中自定义超时异常的几种方法
2019/07/29 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
Python脚本打包成可执行文件过程解析
2020/10/20 Python
大四自我鉴定范文
2013/10/06 职场文书
汽车专业毕业生推荐信
2013/11/12 职场文书
药店采购员岗位职责
2014/09/30 职场文书
实习生辞职信范文
2015/03/02 职场文书
2015年清明节扫墓演讲稿
2015/03/18 职场文书
2015年小学中秋节活动总结
2015/03/23 职场文书
三好学生竞选稿范文
2019/08/21 职场文书
Python selenium的这三种等待方式一定要会!
2021/06/10 Python