小端定义:低字节存低有效数,高字节存高有效数
大端定义:低字节存高有效数,高字节存低有效数
原数据 0x12345678 高字节->低字节 高有效数->低有效数
在传输过程中,小端中的低字节到大端依旧是低字节,但小端中低字节被读取为低有效数,大端中却读取为高有效数,所以在传输之前,要把高有效数放进低字节,低有效数放进高字节,所以代码如下
#include <stdio.h>
int swap(unsigned int value)
{
unsigned int Tempvalue;
Tempvalue |=((value&0x000000ff)<<24);
Tempvalue |=((value&0x0000ff00)<<8);
Tempvalue |=((value&0x00ff0000)>>8);
Tempvalue |=((value&0xff000000)>>24);
return Tempvalue;
}
int main()
{
unsigned int a=0x12345678;
unsigned int b;
b = swap(a);
printf("-----------------------------\n");
printf("0x%x\n",b);
printf("-----------------------------\n");
return 0;
}
输出结果为
-----------------------------
0x78563412
-----------------------------
小端转大端,大端转小端都是如此,把数据进行颠倒即可