首先我們要明白,什麼是大端,什麼是小端。拿二進制的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;
}
這樣就可以很輕易的檢測出你的機器是大端存儲還是小端存儲啦~很簡單吧!