当前位置: 首页 > 面试题库 >

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

许子平
2023-03-14
本文向大家介绍请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1 相关面试题,主要包含被问及请写一个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 模式的CPU对操作数的存放方式是从高字节到低字节。在弄清楚这个之前要弄清楚这个问题:字节从右到坐为从高到低! 假设从地址0x4000开始存放: 0x12345678,是也个32位四个字节的数据,最高字节是0x12,最低字节是0x78:在Little-endian模式CPU内存中的存放方式为: (高字节在高地址,低字节在低地址)

内存地址0x4000 0x4001 0x4002 0x4003

存放内容 0x78 0x56 0x34 0x12

大端机则相反。

 类似资料:
  • 我在堆栈溢出中搜索这个问题。但我很难理解编码,因为有人使用递归过程。 我知道在最小堆中,每个父节点都小于或等于它的子节点…我也知道我们在树[K]中使用公式树[K/2]表示父节点,它的左子节点是树[2K],它的右子节点是树[2K1],只有当我们从1而不是0开始数组时,这才是真的。 有三种情况可以检查我的数组是否是min heap: 1.内部节点既有左子节点也有右子节点。 2.最后一个节点可能只有一个

  • 我现在有一个Arduino程序,通过一个串行事件来传递加速计值,以使处理工作正常。我正在尝试将温度计添加到设置中,但处理过程仅从读取pin接收到0。如果我是连载的话。在设置中打印读数它确实可以打印到串行监视器上,但是我无法让它在我的加速计读数旁边发送正确的值。 Arduino代码: 处理代码: 加速计值打印得很完美,但温度仅返回0。电视连续剧串行监视器中的print(analogRead(A0))

  • 问题内容: 我在node.js中编写一个函数来查询PostgreSQL表。 如果该行存在,我想从该行返回id列。 如果不存在,我想将其插入并返回ID()。 我一直在尝试和语句的变体,但似乎无法使其正常工作。 问题答案: 我建议在数据库端进行检查,然后将ID返回给nodejs。 例子: 而不是在Node.js端(在此示例中,我使用的是node-postgres):

  • 问题内容: 在Python中,我想编写一个返回另一个函数的函数。返回的函数应该可以通过参数调用,并返回高度和半径为圆柱的体积。 我知道如何从Python中的函数返回 值 ,但是如何返回 另一个函数 ? 问题答案: 使用Python尝试一下: 这样使用它,例如与和: 注意,返回一个函数很简单,只需在函数内部定义一个新函数,然后在最后返回它- 小心地为每个函数传递适当的参数。仅供参考,从另一个函数返回

  • 我的数据库中有两个表: 表1:购买物品 表1列出了购买的物品,表2每小时更新一次每件物品的当前价格。因此,从表2中可以清楚地看出,肉类最后一次交易是在2013年2月20日上午10点,而鱼类不是在同一天交易的,它是在2013年2月19日上午9点交易的,鸡肉是在2013年2月20日上午9点交易的。我想做的是,列出表1中的所有项目,并加入表2中各个项目的最后交易价格,如下所示: 这里应该应用什么类型的连

  • 出于某种原因,在下面的递归函数中, 永远不递增p,也就是说字符串s永远不是一个回文,尽管在我的程序中,s确实是一个回文,次数相当少。但是在下面一行中它仍然返回false 是因为功能吗?s采用的一些值为:aaa、aba、AAAA、abbb、bab 我已确保s中没有前后空格 P、 S:我已经检查过了,x==n 示例输入: 输出0。回文:aaaaaa、abaaba、aaaaaa