計算機的字節序問題

 

1)IBM、Motorola等芯片採用大字節序(big-endian),多字節數據的第一個字節(數字地址最低的)存儲的是最高位的值,例(32位機器):

int i = 0x12345687;
假設&i = 0x0012FF3C,則:
0x0012FF3C 12
0x0012FF3D 34
0x0012FF3E 56
0x0012FF3F 78

2)DEC、Inter等芯片採用小字節序(little-endian),多字節數據的第一個字節(數字地址最低的)存儲的是最低位的值,例(32位機器):

int i = 0x12345687;
假設&i = 0x0012FF3C,則:
0x0012FF3C 78
0x0012FF3D 56
0x0012FF3E 34
0x0012FF3F 12

 

PS:今天看《WINDOWS程序調試》上有關字節序的一段,講得比較淺顯:

    “字節存到內存中的方式有兩種。第一個方式稱爲Big Endian,首先存儲高字節,所以0x12345678被存爲0x12 0x34 0x56 0x78。另一種方式稱爲Little Endian,首先存儲低字節,所以0x12345678被存爲0x78 0x56 0x34 0x12。”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章