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

面试题 相关文章推荐
你常见到的runtime exception
Sep 05 面试题
应用服务器有那些
Jan 19 面试题
JSF面试题:Jsf中导航的标签是什么
Apr 20 面试题
分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)
Jul 16 面试题
金山毒霸系列的笔试题
Apr 13 面试题
What is view? why do we have view?
Jun 22 面试题
金蝶的一道SQL笔试题
Dec 18 面试题
C#里面可以避免一个类被其他类继承么?如何?
Sep 26 面试题
几个Linux面试题笔试题
Dec 01 面试题
几个判断型的面试题
Jul 03 面试题
UNIX文件名称有什么规定
Mar 25 面试题
Delphi工程师笔试题
Sep 21 面试题
一套带答案的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删除数组中空值的方法介绍
2014/04/14 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
php实现将数据做成json的格式给前端使用
2018/08/21 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
jQuery toggle()设置CSS样式
2009/11/05 Javascript
jQuery中ajax的使用与缓存问题的解决方法
2013/12/19 Javascript
jQuery 文本框得失焦点的简单实例
2014/02/19 Javascript
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
2016/08/05 Javascript
Bootstrap CSS布局之表单
2016/12/17 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
layer弹出层扩展主题的方法
2019/09/11 Javascript
[01:55]《走出家门看比赛》——DOTA2 2015国际邀请赛同城线下观战
2015/07/18 DOTA
Python greenlet实现原理和使用示例
2014/09/24 Python
Python中实现对Timestamp和Datetime及UTC时间之间的转换
2015/04/08 Python
分享python数据统计的一些小技巧
2016/07/21 Python
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
python实现学员管理系统
2019/02/26 Python
python hough变换检测直线的实现方法
2019/07/12 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
使用keras2.0 将Merge层改为函数式
2020/05/23 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
python与js主要区别点总结
2020/09/13 Python
Python绘制K线图之可视化神器pyecharts的使用
2021/03/02 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
纽约21世纪百货官网:Century 21
2016/08/27 全球购物
英国精品买手店:Browns Fashion
2016/09/29 全球购物
匡威爱尔兰官网:Converse爱尔兰
2019/06/09 全球购物
雅虎笔试题(字符串操作)
2015/03/24 面试题
24岁生日感言
2014/01/13 职场文书
我的中国梦演讲稿400字
2014/08/19 职场文书
考试作弊检讨书
2014/10/21 职场文书
学生不参加考试检讨书
2015/02/19 职场文书
重阳节座谈会主持词
2015/07/03 职场文书
利用python调用摄像头的实例分析
2021/06/07 Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
2022/04/04 Python