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

面试题 相关文章推荐
纬创Java面试题笔试题
Oct 02 面试题
2019年Java面试必问之经典试题
Sep 12 面试题
网络、C以及其他硬件方面的面试题
Aug 23 面试题
"序列点" 是什么
Jul 29 面试题
SQL Server笔试题
Jan 10 面试题
如何查找网页漏洞
Jun 22 面试题
C#实现启动一个进程
Oct 01 面试题
如何利用cmp命令比较文件
Apr 11 面试题
sort命令的作用和用法
Aug 25 面试题
MIS软件工程师的面试题
Apr 22 面试题
用Python写一个for循环的例子
Jul 19 面试题
垃圾回收的优点和原理
May 16 面试题
一套带答案的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乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
phpize的深入理解
2013/06/03 PHP
php版小黄鸡simsimi聊天机器人接口分享
2014/01/26 PHP
深入浅出php socket编程
2015/05/13 PHP
php简单实现文件或图片强制下载的方法
2016/12/06 PHP
使用prototype.js 的时候应该特别注意的几个问题.
2007/04/12 Javascript
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
JS.findElementById()使用介绍
2013/09/21 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
2015/09/28 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
2016/08/19 Javascript
JQuery统计input和textarea文字输入数量(代码分享)
2016/12/29 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
2018/08/25 Javascript
vue axios 简单封装以及思考
2018/10/09 Javascript
JavaScript一元正号运算符示例代码
2019/06/30 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
python numpy存取文件的方式
2020/04/01 Python
Python常用GUI框架原理解析汇总
2020/12/07 Python
10个最常见的HTML5面试题 附答案
2016/06/06 HTML / CSS
HTML5跳转小程序wx-open-launch-weapp的示例代码
2020/07/16 HTML / CSS
HTML5 SEO优化的一些建议
2020/08/27 HTML / CSS
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
某公司C#程序员面试题笔试题
2014/05/26 面试题
会计专业推荐信
2013/10/29 职场文书
公司前台接待岗位职责
2013/12/03 职场文书
烹饪自我鉴定
2014/03/01 职场文书
《散步》教学反思
2014/03/02 职场文书
食品安全工作方案
2014/05/07 职场文书
爱心捐款感谢信
2015/01/20 职场文书