常见主机字节序
常見主機字節序
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
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://baike.baidu.com/view/2194385.htm
總結
- 上一篇: 求一个qq头像女生网名霸气!
- 下一篇: 正则表达式分类 区别