判斷大端小端的兩種方法

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章