2012-10-05 40 views
2

考慮下面的16位的數據包,這是通過在網絡中的網絡字節順序即大端發送:位/字節adressing - 小/大-endnian

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15(字節NUM)
90 AB 23 FF 65 37 56 56 C6 00 B7 00(值)

比方說8945是一個16位的值。所有其他的都是8位數據字節。

在我的系統上,這是一個小端,如何接收和存儲數據?

可以說,我們被配置爲一次接收8個字節。 RxBuff是接收數據的Rx緩衝區。

Buff是存儲數據的存儲緩衝區。

請指出一次讀取8個字節後哪種情況對數據存儲是正確的: 1)Buff [] = {0x34,0x67,0x45,0x89,0x90,0xAB ....... 0x00} ; 2)Buff [] = {0x00,0x00,....... 0x67,0x89,0x45,0x34};

將整個16字節的數據顛倒還是隻包含在這個數據包中的2字節值?

回答

2

只有數據包中包含的2個字節值將被反轉。
Endianess關注字節順序,而不是位順序。

這是對wikipedia的解釋