判斷機器大小端

2021-08-21 04:47:04 字數 1230 閱讀 9443

引用

一、機器大小端

1、大端模式:是指資料的高位元組儲存在記憶體的低位址中,而資料的低位元組儲存在記憶體的高位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理:位址由小向大增加,而資料從高位往低位放;這和我們的閱讀習慣一致。

short a = 0x1234;

//如果0x12在低址處,就是大端

2、小端模式:是指資料的高位元組儲存在記憶體的高位址中,而資料的低位元組儲存在記憶體的低位址中,這種儲存模式將位址的高低和資料位權有效地結合起來,高位址部分權值高,低位址部分權值低。

short a = 0x1234;

//0x34在低位址處,就是小端

3、記憶技巧:小小小位元組序存在位址處就是

二、四種方法判斷機器大小端

1、利用指標判斷

#include

#define bool_true 1

#define bool_false 0

int islittleendian()

2、利用聯合體判斷

聯合體union的存放順序是所有成員從低位址開始存放的

#include

#define bool_true 1

#define bool_false 0

union lit

;int islittleendian()

3、利用系統函式htons()

htons包含於sys/socket.h

注意:vs2008沒有包含此函式的庫函式,linux下可以使用

#include

#define bool_true 1

#define bool_false 0

int islittleendian()

return bool_false;

}

4、定義乙個變數之間檢視記憶體

int x = 1;    //直接檢視記憶體看該變數的低位址是否為1

判斷機器的大小端

一 概念 大端模式 big endian 是指資料的低位儲存在記憶體的低位址中,而數 據的高位儲存在記憶體的高位址中。為什麼會有大小端模式之分呢?這是因為在計算機系統中,我們是以位元組為單位的,每個位址單元都對應著乙個位元組,乙個位元組為8bit。但是在c語言中除了8bit的char之外,還有16b...

判斷機器的大小端

大端 儲存 模式,是指資料的低位儲存在記憶體的高位址中,而資料的高位,儲存在記憶體的低位址中 小端 儲存 模式,是指資料的低位儲存在記憶體的低位址中,而資料的高位,儲存在記憶體的高位址中。這是因為在計算機系統中,我們是以位元組為單位的,每個位址單元都對應著 乙個位元組,乙個位元組為8bit。但是在c...

判斷機器的大小端

大小端模式 為什麼會有大小端模式之分呢?這是因為在計算機系統中,我們是以位元組為單位的,每個位址單元都對應著乙個位元組,乙個位元組為 8bit。但是在c語言中除了8bit的char之外,還有16bit的short型,32bit的long型 要看具體的編譯器 另外,對於位數大於 8位的處理器,例如16...