一、什么是大小端:
1.大端(Big-Endian):高地址存放低位
2.小端(Little-Endian):高地址存放高位
例如:0x11223344在内存中存储
大小端影响了什么?
当基本数据类型占用字节数超过了1字节后,大小端决定了数据按照什么顺序存储在内存里
如何确定大小端?
当我们不知道当前换将是大端存储还是小端存储的时候,就需要用代码来确定当前环境的大小端
1.强类型转换(int-->char)
int n = 1;
char* p = (char*)&n;
if (*p == 1) {
printf("小端\n");
}
else {
printf("大端\n");
}
2.共用体(union)
#include<stdio.h>
union u {
int n;
char c;
};
int main()
{
union u m;
m.n = 0x11223344;
if (m.c == 0x44) {
printf("小端");
}
else {
printf("大端");
}
return 0;
}