设计一个代码,可以把int类型数据从小端序转成大端序

本文介绍了如何使用C语言设计代码将int类型数据从小端序转换为大端序。内容涉及大小端存储原理,以及联合体在转换过程中的应用。通过位移和交换操作,可以实现字节顺序的改变,满足不同环境下数据传输的需求。
摘要由CSDN通过智能技术生成

设计一个代码,可以把int类型数据从小端序转成大端序

1.位移

#include <stdio.h>

//把int类型数据从小端序转成大端序
void main()
{
	int n=0x12345678;
	char *p=(char *)&n;
	printf("小端序:%#x\n",n);
	n=(*p)<<24|(*(p+1))<<16|(*(p+2))<<8|(*(p+3));
	printf("大端序:%#x\n",n);
}

 2.交换

#include <stdio.h>

union endian//共用体(联合体)
{
	char a[4];
	int b;
}big;

//把int类型数据从小端序转成大端序
int big_endian(int n)
{
	char temp;
	big.b=n;
	//第1字节与第4字节交换
	temp=big.a[0];
	big.a[0]=big.a[3];
	big.a[3]=temp;
	
	//第2字节与第3字节交换
	temp=big.a[1];
	big.a[1]=big.a[2];
	big.a[2]=temp;
	return big.b;
}


void main()
{
	int n=0x12345678;
	printf("小端序:%#x\n",n);
	n=big_endian(n);
	printf("大端序:%#x\n",n);
}

 

大小端(字节序)
    大小端:用来描述计算机中数据的存储方式    //int a=0x12345678;12->高字节,78->低字节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值