大端字節序:高字節存放在低地址,低字節存放在高低址
小端字節序:低字節存放在高低址,高字節存放在低地址
大小端字節順序它是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;
}