不同的CPU有不同的位元組序類型 這些位元組序是指整數在記憶體中儲存的順序 這個叫做主機序
最常見的有兩種:
1. Little endian:将低序位元組存儲在起始位址
2. Big endian:将高序位元組存儲在起始位址
LE little-endian
最符合人的思維的位元組序
位址低位存儲值的低位
位址高位存儲值的高位
怎麼講是最符合人的思維的位元組序,是因為從人的第一觀感來說
低位值小,就應該放在記憶體位址小的地方,也即記憶體位址低位
反之,高位值就應該放在記憶體位址大的地方,也即記憶體位址高位
BE big-endian
最直覺的位元組序
位址低位存儲值的高位
位址高位存儲值的低位
為什麼說直覺,不要考慮對應關系
隻需要把記憶體位址從左到右按照由低到高的順序寫出
把值按照通常的高位到低位的順序寫出
兩者對照,一個位元組一個位元組的填充進去
例子:在記憶體中雙字0x01020304(DWORD)的存儲方式
記憶體位址
4000 4001 4002 4003
LE 04 03 02 01
BE 01 02 03 04
例子:如果我們将0x1234abcd寫入到以0x0000開始的記憶體中,則結果為
big-endian little-endian
0x0000 0x12 0xcd
0x0001 0x34 0xab
0x0002 0xab 0x34
0x0003 0xcd 0x12
x86系列CPU都是little-endian的位元組序.
原文:http://blog.chinaunix.net/uid-790245-id-2037563.html
人就像是被蒙着眼推磨的驢子,生活就像一條鞭子;當鞭子抽到你背上時,你就隻能一直往前走,雖然連你也不知道要走到什麼時候為止,便一直這麼堅持着。