首先我们要明白,什么是大端,什么是小端。拿二进制的1来举例,当它在机器中存储时会转换成‘00000000000000000000000000000001’
看了上面那张图,大家应该明白了什么是大端存储什么是小端存储吧?那我们如何判断我们的机器是大端存储还是小端存储呢?有两种解决方法。
(一)指针法
#include <stdio.h>
int main()
{
int val = 1;
char *ret = (char *)&val;
if (*ret == 1)
printf("小端存储");
else
printf("大端存储");
return 0;
}
(二)联合法
#include <stdio.h>
union UN
{
int a;
char c;
};
int main()
{
union UN un;
un.a = 1;
if (un.c == 1)
printf("小端存储");
else
printf("大端存储");
return 0;
}
这样就可以很轻易的检测出你的机器是大端存储还是小端存储啦~很简单吧!