The bitwise exclusive OR operator (in EBCDIC, the `^` symbol
is represented by the `¬` symbol) compares each bit of its first
operand to the corresponding bit of the second operand. If both bits are `1`'s or both bits are `0`'s, the corresponding bit of the result
is set to `0`. Otherwise, it sets the corresponding result bit to `1`.

Both operands must have an integral or enumeration type. The usual arithmetic conversions on each operand are performed. The result has the same type as the converted operands and is not an lvalue.

Because the bitwise exclusive OR operator has both associative and commutative
properties, the compiler can rearrange the operands in an expression that
contains more than one bitwise exclusive OR operator. Note that the `^` character can be represented by the trigraph `??'`.

The following example shows the values of `a`, `b`, and
the result of `a ^ b` represented as 16-bit binary
numbers:

bit pattern of a |
0000000001011100 |

bit pattern of b |
0000000000101110 |

bit pattern of a ^ b |
0000000001110010 |

Related information