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

面试题 相关文章推荐
线程的基本概念、线程的基本状态以及状态之间的关系
Oct 26 面试题
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
Mar 25 面试题
简单介绍Object类的功能、常用方法
Oct 02 面试题
将"引用"作为函数参数有哪些特点
Apr 05 面试题
如何删除一个表里面的重复行
Jul 13 面试题
什么是TCP/IP
Jul 27 面试题
酷瑞网络科技面试题
Mar 30 面试题
介绍一下write命令
Aug 10 面试题
JAVA招聘远程笔试题
Jul 23 面试题
线程同步的方法
Nov 23 面试题
Servlet方面面试题
Sep 28 面试题
JPA的优势都有哪些
Jul 04 面试题
一套带答案的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中simplexml_load_string使用实例分享
2014/02/13 PHP
PHP中的use关键字概述
2014/07/23 PHP
YII2.0之Activeform表单组件用法实例
2016/01/09 PHP
php自定义函数实现二维数组按指定key排序的方法
2016/09/29 PHP
JavaScript Event学习第十章 一些可替换的事件对
2010/02/10 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
基于JavaScript实现定时跳转到指定页面
2016/01/01 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
Vue.js常用指令的使用小结
2017/06/23 Javascript
详解webpack分包及异步加载套路
2017/06/29 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
Python FTP操作类代码分享
2014/05/13 Python
python实现读取命令行参数的方法
2015/05/22 Python
python操作excel的包(openpyxl、xlsxwriter)
2018/06/11 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
python实现简单图片物体标注工具
2019/03/18 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
如何基于Python制作有道翻译小工具
2019/12/16 Python
Python读取yaml文件的详细教程
2020/07/21 Python
pandas将list数据拆分成行或列的实现
2020/12/13 Python
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
教育学专业实习生的自我鉴定
2013/11/26 职场文书
四年的个人工作自我评价
2013/12/10 职场文书
安全资料员岗位职责
2013/12/14 职场文书
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书
户籍证明格式
2014/09/15 职场文书
离婚起诉状范本
2015/05/19 职场文书
小学科学课教学反思
2016/02/23 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android
Flutter Navigator 实现路由传递参数
2022/04/22 Java/Android
python如何读取和存储dict()与.json格式文件
2022/06/25 Python