ビット単位 AND 演算子 &

& (ビット単位 AND) 演算子は、 第 1 オペランドの各ビットと第 2 オペランドの対応するビットを比較します。 ビットが両方とも 1 であれば、対応する結果のビットを 1 にセットします。 1 でなければ、対応する結果のビットを 0 にセットします。

オペランドは両方とも、整数型または列挙型でなければなりません。各オペランドには、通常の算術変換が 実行されます。結果には、変換されたオペランドと同じ型が保持されます。

ビット単位 AND 演算子には、結合属性と可換属性の両方があるので、コンパイラーは、 複数のビット単位 AND 演算子を含む式の中でオペランドの再配置を行うことができます。

次の例では、16 ビットの 2 進数で表された、ab の値と、a & b の結果を示します。

注: ビット単位 AND (&) を、論理 AND (&&) 演算子と混同しないでください。 例えば、

   1 & 4 は 0 になります。
一方
   1 && 4 は true になります。