大小端儲存模式

audience_fzn發表於2018-08-03

什麼是大小端?

大端(儲存)模式:是指資料的低位儲存在記憶體的高地址,而資料的高位,儲存在記憶體的低地址中

小端(儲存)模式:資料的地位儲存在記憶體的低地址,而資料的高位,儲存在記憶體的高地址

為什麼要有大小端?

因為在計算機系統中,我們是以位元組為單位的 ,每個地址單元都對應著一個位元組,一個位元組為8bit。

但是在c語言內,處理8bit的char。還有16bit的short,32為的int。另外對於位數大於8為的處理器,例如16位或32位的處理器,由於暫存器的寬度大於一個位元組,那麼必然存在著如何將多個位元組安排的問題。因此就有了大端和小端儲存模式。

採用大端模式進行存放符合人類的正常思維,採用小端的模型進行資料存放便於計算機處理

 

大小端的優勢

小端模式:強制轉換資料不需要調整位元組內容,1,2,4位元組的儲存方式都是一樣的

大端模式:符號位的判斷固定位第一個位元組,容易判斷正負

 

大小端的判斷:

int main()
{
	int a = 1;
	char *p = (char*)&a;
	if (*p == 1)
	{
		printf("小端\n");
	}
	else
	{
		printf("大端\n");
	}
	system("pause");
	return 0;
}
union hehe
{
	int a;
	char c;
}un;

int main()
{
	un.a = 1;
	if (un.c == 1)
	{
		printf("小端\n");
	}
	else
	{
		printf("大端\n");
	}
	system("pause");
	return 0;
}

 

 

 

 

 

 

 

 

 

相關文章