经典面试题: 数据的大端存储和小端存储,以及C语言的判断方法
经典面试题: 数据的大端存储和小端存储,以及C语言的判断方法
计算机硬件有两种储存数据的方式:大端字节序(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;
}
经典面试题: 数据的大端存储和小端存储,以及C语言的判断方法相关教程