眾所周知,對於資料超過乙個位元組的資料,在計算機中的儲存需要跨越位元組。某些機器選擇在儲存器中按照從最低為有效位元組到最高有效位元組的順序儲存物件,而另一些機器則按照從最高為有效位元組到到最低為有效位元組的順序儲存,前一種儲存方式被稱為小端儲存,後一種方式被稱為大端儲存。
第一種:不分裝函式,直接在main函式內進行定義
#include
int main()
else
system("pause");
return
0;}
第二種方法:在main外封裝乙個函式
#include
int check_sys()
else
}int main()
else
system("pause");
return
0;}
在此部分,可直接將封裝函式中的if else省略,直接讓其返回return *(char *)&i;
即可,這樣更大程度的提高了程式的執行速率,節省了時間。
第三種方法:利用聯合,判斷資料的儲存方式。
聯合的基本概念:聯合的所有成員在記憶體塊中佔相同的位置,對其的型別,與結構體類似,可以參考前面所說的結構體。
在乙個成員長度不同的聯合裡,分配給聯合的記憶體數量取決於它的最大成員的大小
int check_sys()
u; u.i = 1;
return u.c;
}int main()
else
system("pause");
return
0;}
每台機器各有不同,可以通過此種方式,從而確定自己所使用機器在儲存資料時的不同。
希望這些可以幫助到大家,在今後的學習中一起進步。
具體如圖所示:
學習的路上,永不停歇!!!
判斷CPU大小端儲存
首先明白big endian和little endian的位元組排序含義 big endian 乙個word中的高位的byte放在記憶體中這個word區域的低位址處。little endian 乙個word中的低位的byte放在記憶體中這個word區域的低位址處。例如 如果我們將0x1234abcd...
大小端的判斷
在計算機系統中,我們以位元組為儲存單位,每個位址的單元都是對應的乙個位元組,乙個位元組為8bit.在c語言中,不僅僅是乙個位元組來儲存資料,除了乙個位元組的char,還有兩個位元組的short,四個位元組的int,另外對於位數大於8位的處理器,例如32位處理器。由於暫存器的寬度大於乙個位元組的長度,...
大小端的判斷
1 什麼是大小端?大端 資料的低位儲存在記憶體的高位址中,而資料的高位儲存在記憶體的低位址處 小端 資料的低位儲存在記憶體的低位址中,而資料的高位儲存在記憶體的高位址處 2 為什麼要有大小端?為什麼會有大小端模式之分呢?這是因為在計算機系統中,我們是以位元組為單位的,每個位址單元都對應著乙個位元組,...