联合体判断大端与小端

大端、小端

大端:数据的高字节存放在低地址处,数据的低字节存放在高地址处。
小端:数据的低字节存放在低地址处,数据的高字节存放在高地址处。

联合体

联合体开辟内存法规则是:选取联合体成员变量中,占用内存最大的内存大小,比如联合体内有int char ,float 类型变量,则开辟int型大小的空间。并且这些成员共用这一内存。

利用联合体特性,判断大小端

typedef union {
	int a;
	char b;
}UN;

int main(){
	
	UN u;
	u.a = 1;
	if(u.b == 1) printf("小端存储\n");
	else printf("大端存储\n");
	return 0;
	
}

分析:

u.a = 0x00000001;
若小端存储形式:
	-------------------->地址减方向
	00 00 00 01
	则 b = 01;

若大端存储形式:
	-------------------->地址减方向
	01 00 00 00
	则 b = 0;

所以当u.b=1时为小端存储,u.b=0时为大端存储。

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值