-
主機字節序
鎖定
網絡字節序與主機字節序是經常導致混淆的兩個概念,網絡字節序是確定的,而主機字節序的多樣性往往是混淆的原因。
- 中文名
- 主機字節序
- 常見形式
- Little endian,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的字節序.
主機字節序相關程序
下面是一個檢驗本機字節序的簡便方法:
//判斷本機的字節序
//返回true表為小段序。返回false表示為大段序
bool am_little_endian () { unsigned short i=1; return (int)*((char *)(&i)) ? true : false; } int main() { if(am_little_endian()) { printf("本機字節序為小段序!\n"); }else { printf("本機字節序為大段序!\n"); } return 0; }