ビットごとの 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 ...
}