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

面试题 相关文章推荐
HashMap和Hashtable的区别
May 18 面试题
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
Feb 06 面试题
凌阳科技股份有限公司C++程序员面试题笔试题
Nov 20 面试题
SQL Server提供的3种恢复模型都是什么? 有什么区别?
May 13 面试题
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
May 18 面试题
几个SQL的面试题
Mar 08 面试题
一些.net面试题
Oct 06 面试题
C#实现启动一个进程
Oct 01 面试题
使用C#编写创建一个线程的代码
Jan 22 面试题
什么是会话Bean
May 14 面试题
万户网络JAVA程序员岗位招聘笔试试卷
Jan 08 面试题
Jdbc数据访问技术面试题
Mar 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防盗链的常用方法小结
2010/07/02 PHP
php中上传文件的的解决方案
2018/09/25 PHP
jquery validation插件表单验证的一个例子
2010/03/03 Javascript
jquery.validate使用攻略 第一部
2010/07/01 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
localStorage实现便签小程序
2016/11/28 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
js断点调试经验分享
2017/12/08 Javascript
puppeteer库入门初探
2019/01/09 Javascript
javascript canvas检测小球碰撞
2020/04/17 Javascript
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
Python实现求笛卡尔乘积的方法
2017/09/16 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
python进行两个表格对比的方法
2018/06/27 Python
Windows下python3.7安装教程
2018/07/31 Python
浅谈django的render函数的参数问题
2018/10/16 Python
Python定义函数时参数有默认值问题解决
2019/12/19 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
tensorboard显示空白的解决
2020/02/15 Python
Python如何通过百度翻译API实现翻译功能
2020/04/02 Python
Python通过两个dataframe用for循环求笛卡尔积
2020/04/29 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
毕业生文员求职信
2013/11/03 职场文书
自荐信怎么写呢?
2013/12/09 职场文书
给老婆的检讨书1000字
2015/01/01 职场文书
员工离职通知函
2015/04/25 职场文书
关于五一放假的通知
2015/08/18 职场文书
Pandas数据类型之category的用法
2021/06/28 Python
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android
Consul在linux环境的集群部署
2022/04/08 Servers
python 闭包函数详细介绍
2022/04/19 Python
清空 Oracle 安装记录并重新安装
2022/04/26 Oracle