大小端問題

2021-07-03 13:10:17 字數 409 閱讀 8020

大小端問題

跨位元組位域大小端轉換例項講解

注:結構體整體當做u16/u32來賦值時才會產生這種問題,如果是按位元組或者移位方式訪問則沒有問題

typedef struct

s_bit_sample;

//測試程式

vos_void bigendiandomainfiledtest(vos_void)

1)在大端cpu上的結果:a=0,b=1,c=523

0000 1010 0000 1011(每個位元組內從左到右分別是數值的高位到低位)

a=00 b=001 c=010 00001011

2)在小端cpu上的結果:a=3,b=2,c=80

0000 1011 0000 1010

b=010  a=11  c=000 01010000

大小端問題

對於位數大於 8位的處理器,例如 16位或者 32位的處理器,由於暫存器寬度大於乙個位元組,那麼必然存在著乙個如果將多個位元組安排的問題。因此就導致了大端儲存模式和小端儲存模式。例如乙個 16bit 的short型x 在記憶體中的位址為 0x0010,x 的值為0x1122 那麼0x11 為高位元組...

大小端問題

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

大小端問題

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