Big_endian and little_endian

本文介绍了一个简单的C函数,用于检测处理器的字节序类型。通过定义一个联合体并设置一个整型变量为1,该函数能够判断当前处理器是Big_endian还是Little_endian。Big_endian处理器上该函数将返回0,而在Little_endian处理器上返回1。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

Answer:
int checkCPU()
{
 {
  union w
  { 
   int a;
   char b;
  } c;
  c.a = 1;
  return (c.b == 1);
 }
}


定义一个union数据结构,里面a和b是使用同一个地址的,int是2Bytes,而b则是1
Byte的,也就是a的低8位(总共16位)。令a=1, 则在big endian机器上,a用16进制
表示为0x01,0x00(低地址), 此时b为它的低8位也就是0x00. little endian反之。
关于2个endian上网去查把。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值