大小端模式

2021-08-30 15:58:36 字數 867 閱讀 5120

什麼是大小端模式

那麼如何來判斷自己的機器是哪種儲存模式呢?

**一:

#define _crt_secure_no_warnings 2

#include#includeunion un

;int main()

在聯合體中所有變數共用一塊記憶體單元,首先在聯合體的四個位元組中儲存1,un.a=1;即儲存00000000 00000000 00000000 00000001這一串01序列,然後把un.c輸出出來,即把這四個位元組中位址最低的乙個位元組的內容取出來,如果是1,則是小端模式,如果是0則是大端模式!

**二:

#define _crt_secure_no_warnings 2

#include#includeint check_sys()

int main()

else if (0==ret)

system("pause");

return 0;

**二的原理和**一基本一樣,首先在check_sys函式裡面定義乙個整型變數a,為其分配四個位元組,儲存00000000 00000000 00000000 00000001;然後對它進行取位址運算(取得的位址預設是這四個位元組中位址最低的位元組的位址),因此只要我們知道了這個位元組裡面的內容是什麼就可以判斷出這台機器的儲存模式了!

因為&a是int* 型別的,我們只需取最低位位元組的位址,因此需要強制型別轉換為char*型別,然後再解引用即可取出裡面儲存的值。如果是1,則是小端儲存模式,是0,則是大端儲存模式。

大小端模式

偶 注意 大小端的高低位資料是按位址來計算的。如0x1001,10是高位位元組,01是低位位元組。char s abcd a是高位位元組 所謂的大端模式,是指資料的低位 就是權值較小的後面那幾位 儲存在記憶體的高位址中,而資料的高位,儲存在記憶體的低位址中,這樣的儲存模式有點兒類似於把資料當作字串順...

大小端模式

所謂的大端模式,是指資料的低位 就是權值較小的後面那幾位 儲存在記憶體的高位址中,而資料的高位,儲存在記憶體的低位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理 位址由小向大增加,而資料從高位往低位放 所謂的小端模式,是指資料的低位儲存在記憶體的低位址中,而數 據的高位儲存在記憶體的高位址中...

大小端模式

端模式 endian 的這個詞出自jonathanswift書寫的 格列佛遊記 這本書根據將雞蛋敲開的方法不同將所有的人分為兩類,從圓頭開始將雞蛋敲開的人被歸為bigendian,從尖頭開始將雞蛋敲開的人被歸為littileendian。小人國的內戰就源於吃雞蛋時是究竟從大頭 big endian ...