2

以下の 16 ビット データ パケットを考えてみましょう。これは、ネットワーク バイト オーダー、つまりビッグ エンディアンでネットワーク経由で送信されます。

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (バイト数)
34 67 89 45 90 AB FF 23 65 37 56 C6 56 B7 00 00 (値)

8945 が 16 ビット値であるとしましょう。その他はすべて 8 ビット データ バイトです。

リトル エンディアンである私のシステムでは、データはどのように受信され、保存されますか?

一度に 8 バイトを受信するように構成されているとします。RxBuff は、データが受信される Rx バッファーです。

Buff は、データが格納されるストレージ バッファです。

一度に 8 バイトを読み取った後のデータ ストレージについて、どちらのケースが正しいかを指摘してください。

2) バフ[] = {0x00、0x00、.......0x67、0x89、0x45、0x34};

16 バイトのデータ全体が逆になるか、それともこのパケットに含まれる 2 バイトの値だけが逆になるか?

4

1 に答える 1

2

パケットに含まれる 2 バイトの値のみが反転されます。
エンディアンは、ビット オーダーではなく、バイト オーダーに関係します。

これはウィキペディアで説明されています

于 2012-10-05T21:26:04.490 に答える