判断是否为小端表示,如果是就转为大端,如果不是就直接返回。
判断大小端, 存储int i为1,如果取到最后一个字节的地址,输出结果还是1,那么就是小端表示,不然就是大端表示:
int i = 1;
char *p = (char *)&i;
if(*p == 1)
printf("Little Endian");
else
printf("Big Endian");
如果是小端:
int num = 0x12345678;
int mask = 0x11;
int res;
int num1, num2, num3, num4;
num1 = (num & mask);//78
num >> 8;
num2 = num & mask;//56
num >> 8;
num3 = num & mask;//34
num >> 8;
num4 = num & mask;//12
res = (num1 << 24) | (num2 <<16) | (num3 << 8) | num4;