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

面试题 相关文章推荐
如何实现jdbc性能优化
Jul 30 面试题
Java工程师面试集锦之Spring框架
Jun 16 面试题
C语言开发工程师测试题
Dec 20 面试题
SQL Server提供的3种恢复模型都是什么? 有什么区别?
May 13 面试题
介绍一下Make? 为什么使用make
Dec 08 面试题
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
Sep 07 面试题
如何拷贝一整个Java对象,包括它的状态
Dec 27 面试题
如何用Java判断一个文件或目录是否存在
Nov 19 面试题
金鑫耀Java笔试题
Sep 06 面试题
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
Jul 06 面试题
final, finally, finalize的区别
Mar 01 面试题
Unix控制后台进程都有哪些进程
Sep 22 面试题
一套带答案的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
PHP 反射机制实现动态代理的代码
2008/10/22 PHP
PHP 循环列出目录内容的函数代码
2010/05/26 PHP
PHP之数组学习
2011/05/29 PHP
PHP简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
Cygwin中安装PHP方法步骤
2015/07/04 PHP
PHP之预定义接口详解
2015/07/29 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
2016/07/18 PHP
PHP单元测试框架PHPUnit用法详解
2019/01/23 PHP
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
JavaScript中的私有/静态属性介绍
2012/07/26 Javascript
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
ExtJs中gridpanel分组后组名排序实例代码
2013/12/02 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
JavaScript的jQuery库插件的简要开发指南
2015/08/12 Javascript
举例说明JavaScript中的实例对象与原型对象
2016/03/11 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
2016/08/02 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
详解如何优雅地在React项目中使用Redux
2017/12/28 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
Vue ​v-model相关知识总结
2021/01/28 Vue.js
详解python eval函数的妙用
2017/11/16 Python
Tensorflow中tf.ConfigProto()的用法详解
2020/02/06 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
Django生成数据库及添加用户报错解决方案
2020/10/09 Python
德国箱包网上商店:koffer24.de
2016/07/27 全球购物
介绍一下RMI的基本概念
2016/12/17 面试题
Servlet面试题库
2015/07/18 面试题
医学实习生自我鉴定
2013/12/12 职场文书
文明家庭事迹材料
2014/12/20 职场文书
吧主申请感言怎么写
2015/08/03 职场文书
pytorch交叉熵损失函数的weight参数的使用
2021/05/24 Python
Win10此设备不支持接收Miracast无法投影的解决方法
2022/07/07 数码科技
mysql数据库如何转移到oracle
2022/12/24 MySQL