C語言判斷大小端的幾種方法

2022-06-13 22:45:17 字數 1052 閱讀 6725

在作業系統中,經常會用到判斷大小端,很多面試題中也會經常遇到,以前的時候沒有總結過,這裡總結一下。

以後用到了就直接可以用了。

所謂的大小端,大致的解釋意思就是:

【大端模式】 cpu對運算元的存放方式是高位址存放低位,低位址存放高位。

【小端模式】cpu對運算元的存放方式是高位址存放高位,低位址存放低位。

大多數arm處理器都是採用的小端模式,powerpc是採用的大端模式,網路位元組序是採用的大端模式。

常用的有兩種方式來判斷大小端,一種是使用c語言中的聯合體,具體**如下:12

3456

78910

intcheckcpu()

c;

c.a = 1;

return(c.b == 1);// 小端返回true,大端返回false

}

其中,linux核心中就是使用這部分的**,**如下所示:12

staticunionendian_test = };

#define endianness ((char)endian_test.mylong)

另外一種就是使用指標的方式,具體**如下所示:12

3456

78910

1112

1314

1516

1718

1920

2122

2324

2526

voidcheckpoint(void)

else

}

C語言判斷大小端

思路 明確大小端 如圖示 程式思路 1 思考資料的儲存方式以及位址排列,int型 在32 位作業系統下 占有 4位元組,char 型 占有1字元,因此可以利用char 型指標判斷 int 型位址與資料 2 如 若有整形 int b 0x 77 ff 10 01,則我們知 0x 01 0x 10,0x...

C語言 大小端的判斷

在文章的開頭我首先要介紹一下大小端的概念 大端模式 是指資料的高位元組儲存在記憶體的低位址中,而資料的低位元組儲存在記憶體的高位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理 位址由小向大增加,而資料從高位往低位放 小端模式 是指資料的高位元組儲存在記憶體的高位址中,而資料的低位元組儲存在記...

C語言判斷機器CPU大小端模式的兩種方法

大端模式,是指資料的高位元組儲存在記憶體的低位址中,而資料的低位元組儲存在記憶體的高位址中。小端模式,是指資料的高位元組儲存在記憶體的高位址中,而資料的低位元組儲存在記憶體的低位址中。利用指標的強制型別轉換,取到低位址 include int main else if p 0x12 return 0...