C大小端存储

大小端模式介绍

  • 大端(存储)模式:是指一个数据的低位字节序的内容放在高地址处,高位字节序存的内容放在低地址处。
  • 小端(存储)模式:是指一个数据的低位字节序内容存放在低地址处,高位字节序的内容存放在高地址处。(可以总结为“小小小”即低位、低地址、小端)

用联合体实现大小端判断

联合体是一个在同一个存储空间里存储不同类型数据的数据类型。这些存储区的地址都是一样的,联合里不同存储区的内存是重叠的,修改了任何一个其他的会受影响。

#include <stdio.h>
int main()
{
	union MyUnion
	{
		short int i;
		char a[2];
	}u;
	u.a[0] = 0x11;
	u.a[1] = 0x22;
	printf("a[0]地址为:0x%x\n", &u.a[0]);
	printf("a[1]地址为:0x%x\n", &u.a[1]);
	if (u.i == 0x2211)
		printf("小端模式");
	else
		printf("大端模式");
	printf("0x%x\n", u.i);
	return 0;
}

大小端转换,先与再移位。

(( a&0x000000ff)<< 24 )   |   ( ( a&0x0000ff00 ) << 8 )   |   ( ( a&0x00ff0000 ) >> 8 )   |   ( ( a&0xff000000 )  >> 24 ) 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值