longがあり、特定の位置のビットがセットされているかどうかをチェックしたいと思います。Java:特定のビットがlongに設定されているかどうかを確認してください
長いA
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 0010 0100 0100
を仮定SO 3、7、10のビットは、13点の位置が設定されます。
今私は
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 0000 0000
とビットがセットされているこの長い10位の
B
別の長いを持っています。 (2番目のロングで1ビットしかセットされないことが保証されています)
A
と
B
ここでは、10ビットが
A
に設定されているかどうかを調べたいと思います。
一つの解決策は、
である私が最初にこの位置は
p
であると言うことができますビットがセットされている位置に長いB
に確認してください。これは、各ビットをループして、そのビットがセットされているかどうかをチェックすることを含む。 「p
ビットがセットされている場合は今長い
A
に私がチェックすることができるか、私はしたくないので、ない
私の質問は、他のソリューションは、各ビットをループに、そこにあると私はドンあらかじめ確認するビットの位置を知っている。
EDIT: 私は事前に知られJava: Checking if a bit is 0 or 1 in a longでこの問題x
で見ていたが、私は事前に位置を知りません。
@Danieboyそれは重複していない、その質問では 'x'が知られています。 – Ritesh