首先明白big-endian和little-endian的位元組排序含義:
big-endian:乙個word中的高位的byte放在記憶體中這個word區域的低位址處。
little-endian:乙個word中的低位的byte放在記憶體中這個word區域的低位址處。
例如:如果我們將0x1234abcd寫入到以0x0000開始的記憶體中,則結果為:
記憶體位址 big-endian little-endian
0x0000 0x12 0xcd
0x0001 0x34 0xab
0x0002 0xab 0x34
0x0003 0xcd 0x12
下面**則用於判斷本機cpu大小端儲存:
CPU大小端判斷
big endian 認為第乙個位元組是最高位位元組 按照從低位址到高位址的順序存放資料的高位位元組到低位位元組 大端 而little endian 則相反,它認為第乙個位元組是最低位位元組 按照從低位址到高位址的順序存放資料的低位位元組到高位位元組 小端 用 c程式設計實現判斷,如下 測試你的機器...
判斷CPU的大小端
原文出處 下面的兩個程式均可判斷cpu的大小端問題 int i 1 char p char i if p 1 printf little endian little endian else printf big endian big endian 大小端儲存問題,如果小端方式中 i佔四個位元組的長度...
C實現CPU大小端判斷
所謂大端就是指高位值在記憶體中放低位位址,所謂小端是指低位值在記憶體中放低位位址。比如 0x12345678 在大端機上是 12345678,在小端機上是 78564312,而乙個主機是大端還是小端要看cpu型別以及執行在上面的作業系統。同一款cpu在不同的作業系統使用的大小端情況是不同的。當然我們...