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

面试题 相关文章推荐
mysql的最长数据库名,表名,字段名可以是多长
Apr 21 面试题
weblogic面试题
Mar 07 面试题
请说出你所知道的线程同步的方法
Apr 19 面试题
简述你对Statement,PreparedStatement,CallableStatement的理解
Mar 25 面试题
简述数组与指针的区别
Jan 02 面试题
类成员函数的重载、覆盖和隐藏区别
Jan 27 面试题
abstract是什么意思
Feb 12 面试题
linux面试题参考答案(4)
Jan 28 面试题
软件测试工程师笔试题带答案
Mar 27 面试题
50道外企软件测试面试题
Aug 18 面试题
介绍一下Ruby中的对象,属性和方法
Jul 11 面试题
为什么说Ruby是一种真正的面向对象程序设计语言
Oct 30 面试题
一套带答案的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继承的一个应用
2011/09/06 PHP
PHP截取IE浏览器并缩小原图的方法
2016/03/04 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
js判断变量是否未定义的代码
2020/03/28 Javascript
ExtJS4给Combobox设置列表中的默认值示例
2014/05/02 Javascript
Bootstrap3学习笔记(三)之表格
2016/05/20 Javascript
基于jQuery实现咖啡订单管理简单应用
2017/02/10 Javascript
js 索引下标之li集合绑定点击事件
2018/01/12 Javascript
tween.js缓动补间动画算法示例
2018/02/13 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
Vue的属性、方法、生命周期实例代码详解
2019/09/17 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
Python with用法实例
2015/04/14 Python
python中datetime模块中strftime/strptime函数的使用
2018/07/03 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
代码详解django中数据库设置
2019/01/28 Python
python 定时器每天就执行一次的实现代码
2019/08/14 Python
python字典排序的方法
2019/10/12 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
canvas如何绘制钟表的方法
2017/12/13 HTML / CSS
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
Proenza Schouler官方网站:纽约女装和配饰品牌
2019/01/03 全球购物
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
大学学年自我鉴定
2013/10/28 职场文书
童装店创业计划书
2014/01/09 职场文书
优秀教师事迹简介
2014/02/02 职场文书
实验教师岗位职责
2014/02/13 职场文书
2014年采购部工作总结
2014/11/20 职场文书
2014年校务公开工作总结
2014/12/18 职场文书
工作保证书
2015/01/17 职场文书
javascript进阶篇深拷贝实现的四种方式
2022/07/07 Javascript