1. ホーム
  2. java

[解決済み] Javaにおけるビット演算子のブール値への影響

2022-07-28 10:36:24

質問

ビット演算子は、変数を移動させ、ビットごとに操作することになっています。 整数、長さ、文字列の場合、これは理にかなっています。 これらの変数は、そのサイズによって強制される値の完全な範囲を含むことができます。

しかし、booleanの場合、booleanは2つの値だけを含むことができます。 1 = 真、または 0 = 偽です。 しかし、booleanのサイズは定義されていません。 バイトのような大きさもあれば、ビットのような小ささもある。

では、booleanにbitwise演算子を使用すると、どのような効果があるのでしょうか? JVM は本質的にそれを通常の論理演算子に変換して、次に進むのでしょうか? それは、操作の目的のために、単一ビット実体としてブーリアンを扱いますか? それとも、結果は、ブール値のサイズと共に未定義ですか?

どのように解決するのですか?

演算子 & , ^ そして | は,オペランドがプリミティブな整数型である場合には,ビット演算子である。 オペランドがブーリアンであるとき,それらは論理演算子であり,後者の場合における動作が規定されている。の15.22.2節を参照すること。 Java言語仕様 を参照してください。