请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1。

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宽的数0x1234在Little-endian模式CPU内存中的存放方式(假设从地址0x4000开始存放)为:

内存地址

存放内容

0x4000

0x34

0x4001

0x12

  而在Big-endian模式CPU内存中的存放方式则为:

内存地址

存放内容

0x4000

0x12

0x4001

0x34

  32bit宽的数0x12345678在Little-endian模式CPU内存中的存放方式(假设从地址0x4000开始存放)为:

内存地址

存放内容

0x4000

0x78

0x4001

0x56

0x4002

0x34

0x4003

0x12

  而在Big-endian模式CPU内存中的存放方式则为:

内存地址

存放内容

0x4000

0x12

0x4001

0x34

0x4002

0x56

0x4003

0x78

  联合体union的存放顺序是所有成员都从低地址开始存放,面试者的解答利用该特性,轻松地获得了CPU对内存采用Little-endian还是Big-endian模式读写。

每日一题(51)—— 大小端判断相关推荐

  1. 表达式求值问题 数据结构_【每日一题51】实际问题与一次函数 看图象求表达式 由表达式求值...

    关注"中考数学当百荟",感谢您的支持! 51.如图,折线MNP表示汽车耗油量y与速度x之间的关系,其中30≤x≤120.已知线段NP表示函数关系中,速度每增加1 km/h,耗油量增 ...

  2. 两种大小端判断的方式

    网络通信是按照字节流进行数据交换的,主机根据不同的CPU型号可能是大段存储,也可能是小端存储.而网络字节序在TCP/IP协议中已经规定好了,采用大端的排序方式. 所以网络通信中一般将需要传输的整数型值 ...

  3. linux查看编译器的大小端,Linux系统大小端判断

    大端模式 大端模式,是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中. 小端模式 小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中. 判断程序 文件: ...

  4. 大小端判断及相互转化

    //小端转化为大端,..大端转化为小端也是一样的. #include <stdio.h> int main() { int i = 0x11223344; char * a = (char ...

  5. 2021-10-17 CAN J1939 DM1 排放及诊断报文大小端判断

    1/大小端标志位 SPN CONV 2/dm x 报文 不同车厂定义不一样/直接透传由客户端程序读取车辆型号后再做数据解包 3/模式 2 由客户端 rs485 发送指令 至 modbus 输入寄存器 ...

  6. 每日一题:字符串系列---判断一个字符串是否是对称字符串 * 例如“abc“不是对称字符串,“aba“、“abba“、“aaa“、“mnanm“是对称字符串

    判断一个字符串是否是对称字符串 * 例如"abc"不是对称字符串,"aba"."abba"."aaa"."mn ...

  7. 大小端判断和网络字节序

  8. LeetCode.每日一题今日份_392.判断子序列

    /* 本题询问的是,ss 是否是 tt 的子序列,因此只要能找到任意一种 ss 在 tt 中出现的方式,即可认为 ss 是 tt 的子序列.而当我们从前往后匹配,可以发现每次贪心地匹配靠前的字符是最优 ...

  9. 非传递骰子(春季每日一题 51)

    为了消磨牛棚里的时光,奶牛们喜欢玩简单的骰子游戏. 其中一种游戏使用两个骰子 XXX 和 YYY 进行. 两个骰子均被投掷,获胜的骰子是显示的数字较大的骰子. 如果两者显示相同的数字,则重新投掷(只要 ...

最新文章

  1. 第三章 “我要点爆”微信小程序云开发之点爆方式页面和爆炸之音页面制作
  2. Python技术分享:numpy库的安装教程
  3. 博客园 CSS 代码定制
  4. mac设置首页访问php,mac系统下php项目除了首页全访问不了
  5. 联邦学习安全与隐私保护综述 A survey on security and privacy of federated learning
  6. 我花了一年时间来学机器学习
  7. jQuery 3.5.0 发布
  8. python爬虫xpath提取数据_python爬虫的页面数据解析和提取/xpath/bs4/jsonpath/正则(1)...
  9. python指数运算是不是有问题_为什么在Python 3中复指数运算如此之快?
  10. 常见数据分析误区:不要让数据误导你!
  11. CORBA版HelloWorld
  12. win10 我的世界java_Windows10系统怎样运行我的世界
  13. 杭州/北京内推 | 阿里达摩院招聘视觉生成方向学术实习生(人才计划)
  14. 响应式开发原理及Bootstrap栅格布局详解
  15. python抢课_python实现强智科技教务系统抢课(两种方法)
  16. 软件语音验证码webservice_明明发送了却迟迟收不到短信验证码?
  17. GBase 8c技术特点
  18. IS-IS LSDB详解(华为设备)
  19. AD18 PCB高亮
  20. vue项目首屏加载优化

热门文章

  1. 大恶人吉日嘎拉之走火入魔闭门造车之.NET疯狂架构经验分享系列之(十二)多语言支持...
  2. ScaleAnimation动画
  3. django-redis中redis.conf配置详细说明
  4. linux环境部署ltmj,Linux系统安装与简单配置 图文.docx
  5. 机器学习中qa测试_如何对机器学习做单元测试
  6. flask-SQLAlchemy 使用 session.commit() 处理异常回滚
  7. 智能外呼系统相关资料总结
  8. 读中文_挑战来了!康辉喊你读中文十级绕口令!
  9. sprintf用法详解
  10. Linux下解压:tar、rar、7z命令