0

VB.NET のビット シフトに関していくつか質問があります。<< >>演算子は VB.NET のビット シフト演算子であることを理解しています。

2 バイトの 16 進数値 があり0x3ACC、これら 2 バイトの各ビットは日、月、または年のいずれかを表します。この 16 進値のビット構造はyyyy yyym mmmd dddd.

年、月、日が独自のUINT16値になるように、これらの値をビットシフトする方法について混乱しています。シフト番号はどうあるべきですか?シフトにパディングを追加する必要がありますか?

4

1 に答える 1

1

And結果を得るには、ビットシフト操作だけでなくを使用する必要があります。年だけを取得するには、右にシフトする必要があります(金額の「非年」ビットを数えます)。日を取得するには、Andすべての「日」ビットが設定されている値だけを使用します。月を抽出するには、2つの手法を組み合わせて、正しいマスクを使用して実行するAnd>>>>実行する必要があります。And


ネタバレ:

  • 年を抽出するには:0x3ACC >> 9
  • 日を抽出するには:0x3ACC And 0x001F
  • 月を抽出するには:0x3ACC And 0x01E0 >> 5
于 2010-11-05T21:47:21.470 に答える