计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)。
- 大端(big endian):在内存中,数据的高字节保存在内存的低地址中,而数据的低字节,保存在内存的高地址中。 (数据高字节->内存低地址)
- 小端(little endian):在内存中,数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。 (数据低字节->内存低地址)
判断数据大端存储还是小端存储的方法
int test1_endian() {
int i = 1;
char *a = (char *)&i;
if (*a == 1)
printf("小端\n");
else
printf("大端\n");
return 0;
}
用联合体
2、用联合体
int test2_endian() {
union {
int i;
char c;
}un;
un.i = 1;
if(un.c == 1) {
printf("小端");
}
else {
printf("大端");
}
return 0;
}