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

面试题 相关文章推荐
JAVA和C++的区别
Oct 06 面试题
Oracle里面常用的数据字典有哪些
Feb 14 面试题
如何为DataGridView添加一个定制的Column Type
Jan 21 面试题
介绍一下Linux内核的排队自旋锁
Jan 04 面试题
Linux文件操作命令都有哪些
Jul 23 面试题
什么是设计模式
Jun 17 面试题
解决方案设计综合面试题
Aug 31 面试题
Why we need EJB
Oct 20 面试题
JavaScript获取当前url根目录(路径)
Feb 19 面试题
DOM和JQuery对象有什么区别
Nov 11 面试题
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
Nov 09 面试题
垃圾回收的优点和原理
May 16 面试题
一套带答案的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
全国FM电台频率大全 - 11 浙江省
2020/03/11 无线电
php5.3中连接sqlserver2000的两种方法(com与ODBC)
2012/12/29 PHP
php ci框架中加载css和js文件失败的原因及解决方法
2014/07/29 PHP
php中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
2016/10/08 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
PHP使用DOM对XML解析处理操作示例
2019/07/04 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
2019/10/11 PHP
laravel添加前台跳转成功页面示例
2019/10/22 PHP
JavaScript toFixed() 方法
2010/04/15 Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
2012/10/11 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
详解利用Angular实现多团队模块化SPA开发框架
2017/11/27 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
jQuery实现可编辑的表格
2019/12/11 jQuery
Python中使用插入排序算法的简单分析与代码示例
2016/05/04 Python
Python自定义类的数组排序实现代码
2016/08/28 Python
实现python版本的按任意键继续/退出
2016/09/26 Python
Python获取指定文件夹下的文件名的方法
2018/02/06 Python
django使用LDAP验证的方法示例
2018/12/10 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
Pycharm Git 设置方法
2020/09/15 Python
详解canvas绘图时遇到的跨域问题
2018/03/22 HTML / CSS
HTML5 图片预加载的示例代码
2020/03/25 HTML / CSS
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
StudentUniverse英国:学生航班、酒店和旅游
2019/08/25 全球购物
西班牙在线宠物食品和配件商店:bitiba
2019/10/11 全球购物
就业意向书范文
2014/04/01 职场文书
本科毕业论文致谢怎么写
2015/05/14 职场文书
观后感格式
2015/06/19 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书