大端字节序 0x 00 00 00 01
小端字节序 0x 01 00 00 00 低位放在低地址上
方法一
指针强转的方式
int Islittlend(){
int a = 0x1;
char* b = (char*)&a; //将a的地址强转成char*类型并存于b中
if (*b == 0x0){
return 0;
//大端字节序
}
return 1;//小端字节序
}
int main(){
printf("%d\n", Islittlend());
system("pause");
return 0;
}
所以在我这台电脑,是以小端字节序排列
方法二
借助联合体也能做到
判断最低地址的字节,判断它是地位还是高位,就可以直到。
先创建一个联合体
union Un
{
int a;
short b;
char c;
};
画一张来体现这个联合体的内存分布
再进行判断
int IslittleEnd(){
union Un u;
u.a = 0x1;
if (u.b == 0x1){
return 1;//小端
}
return 0;
}
int main(){
printf("%d\n", IslittleEnd());
system("pause");
return 0;
}
结果是一样的