C語言 大小端的問題

2021-06-16 05:53:20 字數 649 閱讀 1509

在計算機中資料一般都先存在記憶體中,(拿32位機來說)系統為記憶體的每乙個位置都分配了乙個位址.位址

從0x00000000開始到0xffffffff(也許你的記憶體沒這麼大).

那麼對於小端(little-endain)來說,資料0x12345678在記憶體中的映像就是這個樣子的:

________

78   0x00000000

56   0x00000001

34   0x00000002

12   0x00000003  

也就是說小端是低位資料放在低位址,像i386(x86)就是這種處理器.

而大端正好相反:

________

12   0x00000000

34   0x00000001

56   0x00000002

78   0x00000003  

也就是說大端是低位資料放在低位址,像superh4就是這種處理器.

測試大小端**:

void main()

else if(0 == a)

else

} int isbiglitend(void)

else if(0x34 == putest[0])

else

}

C語言大小端問題

一 概念 大端儲存 乙個數的低位位元組序的內容存放到高位址處,高位位元組序的內容存放在低位址處。小端儲存 乙個數的低位位元組序的內容存放到低位址處,高位位元組序的內容存放在高位址處。舉個例子 include include include intmain printf s n isbigendian...

C語言大小端問題剖析

在c語言中,常常會遇到判斷cpu大小端的問題,在很多的筆試面試中經常會出現類似的題目,網路程式設計中也會程序遇到類似的問題,此文做以總結。1 那麼何為cpu的大端和小端呢?大端 指的是資料的高位元組存放在記憶體的低位址中,資料的低位元組存放在記憶體的高位址中 小端 指的是資料的高位元組存放在記憶體的...

C語言之大小端問題

1 大小端名字的由來及發展 1 在喬納森 斯威夫特的著名諷刺 格列夫遊記 中,小人國內部 成big endian和little endian兩派,區別在於一派要求從雞蛋的大頭把雞蛋打破,另一派要求從雞蛋的小頭把雞蛋打破。斯威夫特藉以諷刺英國的政黨之爭,在計算機工業中指資料儲存順序的分歧。2 後來計算...