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

面试题 相关文章推荐
PHP开发工程师面试问题集锦
Nov 01 面试题
构造方法和其他方法的区别?怎么调用父类的构造方法
Sep 22 面试题
2019年c语言经典面试题目
Aug 17 面试题
CLR与IL分别是什么含义
Aug 23 面试题
Linux内核的同步机制是什么?主要有哪几种内核锁
Jan 03 面试题
什么是组件架构
May 15 面试题
JPA的特点
Oct 25 面试题
如何写出高质量、高性能的MySQL查询
Nov 17 面试题
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
Feb 17 面试题
J2EE面试题大全
Aug 06 面试题
UNIX特点都有哪些
Apr 05 面试题
J2EE中常用的名词进行解释
Nov 09 面试题
一套带答案的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安装全攻略:APACHE
2006/10/09 PHP
如何使用脚本模仿登陆过程
2006/11/22 PHP
对PHP新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
PHP的拦截器实例分析
2014/11/03 PHP
Smarty分页实现方法完整实例
2016/05/11 PHP
php实现的http请求封装示例
2016/11/08 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
laravel手动创建数组分页的实现代码
2018/06/07 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
javascript document.execCommand() 常用解析
2009/12/14 Javascript
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
jquery datatable服务端分页
2016/08/31 Javascript
jQuery通过ajax快速批量提交表单数据
2016/10/25 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
2017/02/22 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
JavaScript内置对象math,global功能与用法实例分析
2019/06/10 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
Python Requests模拟登录实现图书馆座位自动预约
2018/04/27 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
2020/03/23 Python
Python logging自定义字段输出及打印颜色
2020/11/30 Python
美国知名运动产品零售商:Foot Locker
2016/07/23 全球购物
Shoes For Crews法国官网:美国领先的防滑鞋设计和制造商
2018/01/01 全球购物
海蓝之谜英国官网:La Mer英国
2020/01/15 全球购物
客户经理岗位职责
2013/12/08 职场文书
护理工作感言
2014/01/16 职场文书
大学生个人求职信
2014/06/02 职场文书
2014入党积极分子批评与自我批评思想报告
2014/10/06 职场文书
支行行长岗位职责
2015/02/15 职场文书
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js
关于JavaScript回调函数的深入理解
2021/06/27 Javascript
jdbc中自带MySQL 连接池实践示例
2022/07/23 MySQL