C語言-大端小端

大端小端什麼意思?

我們都知道在計算機中是以二進制的方式存儲數據的,對於整形來說:數據存放內存中其實存放的是補碼。

舉個栗子:

               int a = 7;

               int b = 1;

這兩個變量在內存中是這樣存放的

數據存儲順序和我們想象的不太一樣,這就是大端小端存儲模式的原因。

 

先定義a,後定義b。

而內存中a和b地址有兩種可能,

一種是a的地址小於b的地址,即變量地址按照內存順序存放,由低位到高位。

還有一種是a的地址大於b的地址,低位地址存儲在高位。

 

大端:低位數據存放到高位地址,高位數據存放到低位地址

小端:低位數據存放到低位地址,高位數據存放到高位地址

 

舉例:存儲1

代碼舉例:

#include<stdio.h>

int check() {

	int a = 1;
	char *p = (char*)&a;
	if (*p == 1)
		return 1;
	else
		return 0;
}

int main() {

	if (check() == 1)
		printf("小端\n");
	else
	{
		printf("大端\n");
	}	
	return 0;
}

 

參考:https://blog.csdn.net/abc_xixi111/article/details/79934229

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