主機位元組序

主機位元組序

網路位元組序與主機位元組序是經常導致混淆的兩個概念,網路位元組序是確定的,而主機位元組序的多樣性往往是混淆的原因。

基本介紹

  • 中文名:主機位元組序
  • 常見形式: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;
}

相關詞條

熱門詞條

聯絡我們