在計算機中資料一般都先存在記憶體中,(拿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 後來計算...