ビット処理排他的 OR 演算子: ^

構文

expression^expression

解説

ビットごとの排他的 OR 演算子 (^) は、最初のオペランドの各ビットを 2 番目のオペランドの対応するビットと比較します。 オペランドの 1 つのビットが 0 で、もう一方のオペランドのビットが 1 の場合、対応する結果ビットが 1 に設定されます。 それ以外の場合は、対応する結果ビットが 0 に設定されます。

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

C++/CLI および C++/CX の ^ 文字の代替使用法の詳細については、「オブジェクト演算子 (^) へのハンドル (C++/CLI および C++/CX)」をご覧ください。

^ の演算子キーワード

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

// expre_Bitwise_Exclusive_OR_Operator.cpp
// compile with: /EHsc
// Demonstrate bitwise exclusive OR
#include <iostream>
using namespace std;
int main() {
   unsigned short a = 0x5555;      // pattern 0101 ...
   unsigned short b = 0xFFFF;      // pattern 1111 ...

   cout  << hex << ( a ^ b ) << endl;   // prints "aaaa" pattern 1010 ...
}

関連項目

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