字节序
- 大端:低位地址存放高位数据,高位地址存放低位数据
- 小端:低位地址存放低位数据,高位地址存放高位数据
网络传输使用的是大端字节序
因特尔采用的都是小端法,我们用笔书写常采用的是大端法
0x12345678的大小端写法
地址是从低到高的
大端法:12 34 56 78
小端法:78 56 34 12
如何验证主机采用的是大端还是小端?——用联合体union
#include<stdio.h>
#include<stdlib.h>
union {
int s;
char c[sizeof(int)];
}un;
int main()
{
un.s=0x12345678;
printf("0x%x\n0x%x\n0x%x\n0x%x\n0x%x\n", un.c[0], un.c[1], un.c[2], un.c[3], un.s);
return 0;
}
union联合体int s和char c[4]公用一块内存地址,可以看出,低位地址存放的是低位字节,所以采用的小端法。