Java のブール値に対するビット演算子の効果 質問する

Java のブール値に対するビット演算子の効果 質問する

ビット演算子は変数を移動し、ビットごとに操作することを目的としています。整数、long、char の場合、これは理にかなっています。これらの変数には、サイズによって強制される値の全範囲を含めることができます。

ただし、ブール値の場合、ブール値には 2 つの値しか含めることができません。1 = true または 0 = false です。ただし、ブール値のサイズは定義されていません。1 バイトほどの大きさになることもあれば、1 ビットほど小さいこともあります。

では、ブール値にビット演算子を使用するとどのような効果がありますか? JVM は基本的にそれを通常の論理演算子に変換して先に進みますか? 操作の目的でブール値を 1 ビットのエンティティとして扱いますか? それとも、ブール値のサイズとともに結果が未定義になりますか?

ベストアンサー1

演算子&^、 は、|オペランドがプリミティブ整数型の場合、ビット演算子です。オペランドがブール値の場合には、論理演算子となり、後者の場合の動作は指定されています。Java言語仕様詳細については。

おすすめ記事