大小端問題

2021-06-01 23:27:39 字數 680 閱讀 8777

對於位數大於

8位的處理器,例如

16位或者

32位的處理器,由於暫存器寬度大於乙個位元組,那麼必然存在著乙個如果將多個位元組安排的問題。因此就導致了大端儲存模式和小端儲存模式。

例如乙個

16bit

的short型x

,在記憶體中的位址為

0x0010,x

的值為0x1122

,那麼0x11

為高位元組,

0x22

為低位元組。

對於大端模式,就將

0x11

放在低位址中,即

0x0010

中,0x22

放在高位址中,即

0x0011

中。小端模式,剛好相反。

我們常用的

x86結構以及很多的

arm,

dsp都為小端模式。

而keil c51和ppc8377

則為大端模式。

位元組反序的例子

unsigned char can_swap8(unsigned char data)

data>>=1;

temp<<=1; 

} if (data&0x01)  

printf("after data:%#x\n", temp);

return temp;

}

大小端問題

大小端問題 跨位元組位域大小端轉換例項講解 注 結構體整體當做u16 u32來賦值時才會產生這種問題,如果是按位元組或者移位方式訪問則沒有問題 typedef struct s bit sample 測試程式 vos void bigendiandomainfiledtest vos void 1 ...

大小端問題

大小端問題 最近工作中,有兩次遇到大小端問題,所以花時間寫這篇日誌,總結一下。1.實際需求 1 前段時間寫了乙個修復損壞的gzip檔案的tool,在linux server上編譯執行沒有問題。但是在solaris server上運編譯執行,結果總是和預期的不一致,跟蹤發現是由大小端問題導致的 2 最...

大小端問題

什麼是大小端 大小端表示資料在儲存器中的存放順序 1 小端模式 資料的高位元組儲存在記憶體的高位址中,而低位元組儲存在記憶體的低位址中。這種儲存模式將位址的高低和資料位權有效的結合起來,高位址部分權值高,低位址部分權值低,和我們平常的邏輯方法一致。2 大端模式 資料的高位元組儲存在記憶體的低位址中,...