0

既存のlongから正確な範囲のビットを抽出する必要があります。具体的には、64ビット値からビット51:12が必要です。

値は次のとおりです。

0x0000000415B2C01E

したがって、ビット51:12の値は次のようになります。

0x0000415B2C

その範囲、またはその問題の任意の範囲を実際に抽出する方法について、私は少し混乱しています。必要なビットを取得するために、単純に12(値<< 12)だけ左シフトするように言われましたが、次の値が得られます。

0x415B2C01E000

今、私はビットシフトがどのように機能するかを完全に誤解しているかもしれませんが、ビット範囲を抽出する方法について頭を悩ませることはできません。私はそれに多くの既存のものを見つけました、しかし私は今それについてさらにもっと混乱しています。

誰かが私を助けることができれば、それは確かにありがたいです。

ありがとう

4

1 に答える 1

3

シフトとマスク:

answer = value >> 12 & 0xFFFFFFFFFFF;
于 2013-03-18T16:01:01.993 に答える