Javaバイト変数。ビットは、.setBit(i)
のような適切なメソッドを提供します。これを実現する方法を知っている人はいますか?]
特定のバイトをビット単位で反復処理できます。
if( (my_byte & (1 << i)) == 0 ){
}
ただし、この位置を1または0に設定することはできません。
ビット単位[〜#〜]または[〜#〜](|
)および[〜#〜] and [〜#〜](&
)演算子。ビットを設定するには、つまりpos
のビットを1
:
my_byte = my_byte | (1 << pos); // longer version, or
my_byte |= 1 << bit; // shorthand
ビットを設定解除するか、0
:
my_byte = my_byte & ~(1 << pos); // longer version, or
my_byte &= ~(1 << bit); // shorthand
例については、 Advanced Java/Bitwise Operators を参照してください
ビットを設定するには:
myByte |= 1 << bit;
クリアするには:
myByte &= ~(1 << bit);
必要な手法は、選択したビットを分離し、それを設定またはクリアすることです。上記をテストするためにそれを使用しているので、すでにビットを分離する式を持っています。ビットをORでセットするか、ビットのANDをビットの1の補数でクリアしてビットをクリアできます。
boolean setBit;
my_byte = setBit
? myByte | (1 << i)
: myByte & ~(1 << i);
あなたのために仕事をするクラスJava.util.BitSetを見てください。
設定するには:myByte.set(bit);
リセットするには:myByte.clear(bit);
boolで埋めるには:myByte.set(bit, b);
boolを取得するには:b = myByte.get(bit);
ビットマップを取得するには:byte bitMap = myByte.toByteArray()[0];