小端:低地址存低数据
法一代码如下:
#include<stdio.h>
bool Islittle()
{
union //联合体tmp
{
char a;
int b;
}tmp;
tmp.b = 1;
//把联合体中的b赋值为1,由于联合体中当一个成员使用内存的时候,其他成员在输出的的时候都是b的值也就是此时char类型的a输出的值也是1
//由于char类型的类型大小为1,在16进制下输出的结果应该是0x00000001,而小端存放结果应该为01 00 00 00,那么我们输出a变量时,看结果为00,还是01,若是01说明是小端
return tmp.a == 1;
}
int main()
{
bool flg=Islittle();
if (flg)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
}
调试结果为:
法二代码如下:
#include<stdio.h>
bool Islittle_1()
{
union
{
char a;
int b;
}tmp;
tmp.b = 0x12345678;
return tmp.a == 0x78;
}
int main()
{
bool flg=Islittle_1();
if (flg)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
}
调试结果为:
所以我们的电脑是小端。