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

面试题 相关文章推荐
Tomcat Mysql datasource数据源配置
Dec 28 面试题
天逸系统(武汉)有限公司Java笔试题
Dec 29 面试题
Java的五个基础面试题
Feb 26 面试题
SQL里面IN比较快还是EXISTS比较快
Jul 19 面试题
WINDOWS域的具体实现方式是什么
Feb 20 面试题
Linux Interview Questions For software testers
Jun 02 面试题
JPA的特点
Oct 25 面试题
如何开发一个JQuery插件
Jul 28 面试题
Python里面如何实现tuple和list的转换
Jun 13 面试题
介绍下Lucene建立索引的过程
Mar 02 面试题
JAVA高级程序员面试题
Sep 06 面试题
中软国际Java程序员机试题
Aug 19 面试题
一套带答案的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代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
PHP实现的操作数组类库定义与用法示例
2019/05/24 PHP
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
js中一维数组和二位数组中的几个问题示例说明
2014/07/17 Javascript
JavaScript事件 "事件对象"的注意要点
2016/01/14 Javascript
js中常用的Tab切换效果(推荐)
2016/08/30 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
Bootstrap文件上传组件之bootstrap fileinput
2016/11/25 Javascript
浅析JavaScript中作用域和作用域链
2016/12/06 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
微信小程序 实现动态显示和隐藏某个控件
2017/04/27 Javascript
jQuery序列化后的表单值转换成Json
2017/06/16 jQuery
深入理解Vue.js源码之事件机制
2017/09/27 Javascript
js序列化和反序列化的使用讲解
2019/01/19 Javascript
Vue自定义属性实例分析
2019/02/23 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
node.js事件轮询机制原理知识点
2019/12/22 Javascript
vuex管理状态仓库使用详解
2020/07/29 Javascript
python字符串排序方法
2014/08/29 Python
python requests.post带head和body的实例
2019/01/02 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
2020/03/31 Python
详解python os.path.exists判断文件或文件夹是否存在
2020/11/16 Python
Python爬虫之Selenium警告框(弹窗)处理
2020/12/04 Python
施工人员岗位职责
2013/12/12 职场文书
2013年学期结束动员演讲稿
2014/01/07 职场文书
幼儿园国庆节活动方案
2014/02/01 职场文书
综治宣传月活动总结
2014/04/28 职场文书
学习保证书范文
2014/04/30 职场文书
入职担保书怎么写
2014/05/12 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
爱岗敬业先进典型事迹材料(2016推荐版)
2016/02/26 职场文书
《鲁班学艺》读后感3篇
2019/11/27 职场文书
利用Python实现Picgo图床工具
2021/11/23 Python