# XOR gate

 INPUT A   B OUTPUT A XOR B 0 0 0 0 1 1 1 0 1 1 1 0

The XOR gate (sometimes EOR gate, or EXOR gate) is a digital logic gate that implements an exclusive or; that is, a true output (1) results if one, and only one, of the inputs to the gate is true (1). If both inputs are false (0) or both are true (1), a false output (0) results. Its behavior is summarized in the truth table shown on the right. A way to remember XOR is "one or the other but not both".

XOR represents the inequality function, i.e., the output is HIGH (1) if the inputs are not alike otherwise the output is LOW (0). XOR can also be viewed as addition modulo 2. As a result, XOR gates are used to implement binary addition in computers. A half adder consists of an XOR gate and an AND gate.

## Symbols

There are two symbols for XOR gates: the 'distinctive' symbol and the 'rectangular' symbol. For more information see Logic Gate Symbols.

'Distinctive' XOR Symbol
'Rectangular' XOR Symbol

The XOR gate with inputs A and B implements the logical expressions: $A \cdot \overline{B} + \overline{A} \cdot B$ or $(A + B) \cdot \overline{A \cdot B}$

## Alternatives

If a specific type of gate is not available, a circuit that implements the same function can be constructed from other available gates. A circuit implementing an XOR function can be trivially constructed from an XNOR gate followed by a NOT gate. If we consider the expression $A \cdot \overline{B} + \overline{A} \cdot B$, we can construct an XOR gate circuit directly using AND, OR and NOT gates. However, this approach requires four gates of three different kinds.

An XOR gate circuit can be made from four NAND or five NOR gates in the configurations shown below . In fact, both NAND and NOR gates are so-called "universal gates," and any logical function can be constructed from either NAND logic or NOR logic alone.

 XOR gate circuit constructed using only NAND gates.

## More than two inputs

Strict reading of the definition of exclusive or, or observation of the IEC rectangular symbol, raises the question of correct behaviour with additional inputs. If a logic gate were to accept three or more inputs and produce a true output if exactly one of those inputs were true, then it would in effect be a one-hot detector (and indeed this is the case for only two inputs). However, it is rarely implemented this way in practice.

It is most common to regard subsequent inputs as being applied through a cascade of binary exclusive-or operations: the first two signals are fed into an XOR gate, then the output of that gate is fed into a second XOR gate together with the third signal, and so on for any remaining signals. The result is a circuit that outputs a 1 when the number of 1s at its inputs is odd, and a 0 when the number of incoming 1s is even. This makes it practically useful as a parity generator or a modulo-2 adder.

For example, the 74LVC1G386 microchip is advertised as a three-input logic gate, and implements a parity generator.[1]