大端字节序:高字节存放在低地址,低字节存放在高低址
小端字节序:低字节存放在高低址,高字节存放在低地址
大小端字节顺序它是CPU的属性,所哟不同的CPU的大小端字节顺序也不同,移植的时候需要先判断当前的CPU是大端还是小端字节序,如果不同则移植需要转移字节序
int num = 0x12345678
大端 小端
例如: 0x1003高低址 78 12
0x1002 56 34
0x1001 34 56
0x1000低地址 12 78
#include <stdio.h>
/*联合*/
union node
{
int num;
char ch;
}
int main()
{
union node p;
//方法一
p.num = 0x12345678;
if (p.ch == 0x78)
{
printf("Little endian\n");
}
else
{
printf("Big endian\n");
}
//方法二
int num = 0x12345678;
char *q = (char *)&num
if (*q == 0x78)
{
printf("Little endian\n");
}
else
{
printf("Big endian\n");
}
return 0;
}