测试计算机大小端存储的两种方法:
一般方法:
#include<stdio.h>
int check_sys()
{
int a = 1;
// 0x 00 00 00 01
// 低地址---->高地址
//...[][][][01][00][00][00][][][]... 小端
//...[][][][00][00][00][01][][][]... 大端
return *(char*)&a;//返回第一个字节的数值
}
int main()
{
int ret = check_sys();
if (ret == 1)
{
printf("小端。");
}
else
{
printf("大端。");
}
return 0;
}
联合体法:
#include<stdio.h>
int check_sys2()
{
union un//共占4个字节内存,所有成员共有。
{
char c;
int i;
}u;
u.i = 1;
// 0x 00 00 00 01
// 低地址---->高地址
//...[][][][01][00][00][00][][][]... 小端
//...[][][][00][00][00][01][][][]... 大端
return u.c;//返回第一个字节的数值
}
int main()
{
int ret = check_sys2();
if (ret == 1)
{
printf("小端。");
}
else
{
printf("大端。");
}
return 0;
}