ビットごとの AND 演算子: &

構文

and-expression:
equality-expression
and-expression & equality-expression

解説

ビットごとの AND 演算子 (&) は、最初のオペランドの各ビットを 2 番目のオペランドの対応するビットと比較します。 両方のビットが 1 の場合、対応する結果のビットは 1 に設定されます。 それ以外の場合は、対応する結果ビットが 0 に設定されます。

ビットごとの AND 演算子のオペランドは両方とも整数型である必要があります。 オペランドには「標準変換」で説明されている通常の算術変換が適用されます。

& の演算子キーワード

C++ では、& の代替スペルとして bitand が指定されます。 C では、<iso646.h> ヘッダーにマクロとして代替スペルが指定されています。 C++ では、代替スペルはキーワードであり、<iso646.h> や C++ でそれに相当する <ciso646> の使用は非推奨です。 Microsoft C++ では、/permissive- または /Za コンパイラ オプションを使用して、代替スペルを有効にする必要があります。

// expre_Bitwise_AND_Operator.cpp
// compile with: /EHsc
// Demonstrate bitwise AND
#include <iostream>
using namespace std;
int main() {
   unsigned short a = 0xCCCC;      // pattern 1100 ...
   unsigned short b = 0xAAAA;      // pattern 1010 ...

   cout  << hex << ( a & b ) << endl;   // prints "8888", pattern 1000 ...
}

関連項目

C++ の組み込み演算子、優先順位、結合規則
C ビット演算子