A connective in logic known as the "exclusive or," or exclusive disjunction. It yields true if exactly one (but not both) of two conditions is true. The XOR operation does not have a standard symbol, but is sometimes denoted (this work) or (Simpson 1987, pp. 539 and 550-554). is read " aut ," where "aut" is Latin for "or, but not both." The circuit diagram symbol for an XOR gate is illustrated above. In set theory, is typically called the symmetric difference. The XOR function is implemented as Xor[predicate1, predicate2, ...].
The binary XOR operation is identical to nonequivalence . can be implemented using AND and OR gates as
where denotes AND and denotes OR, and can be implemented using only NOT and NAND gates as
(Simpson 1987), where denotes NAND.
The binary XOR operator has the following truth table.
The binomial coefficient mod 2 can be computed using the XOR operation XOR , making Pascal's triangle mod 2 very easy to construct.
For multiple arguments, XOR is defined to be true if an odd number of its arguments are true, and false otherwise. This definition is quite common in computer science, where XOR is usually thought of as addition modulo 2. In this context, it arises in polynomial algebra modulo 2, arithmetic circuits with a full adder, and in parity generating or checking. While this means that the multiargument "XOR" can no longer be thought of as "the exclusive OR" operation, this form is rarely used in mathematical logic and so does not cause very much confusion. The XOR operation is associative, so is the same as . Computation of the multiargument XOR requires evaluation of all its arguments to determine the truth value, and hence there is no "lazy" special evaluation form (as there is for AND and OR).
The ternary XOR operator therefore has the following truth table.
A bitwise version of XOR can also be defined that performs a bitwise XOR on the binary digits of two numbers and and then converts the resulting binary number back to decimal. Bitwise XOR is implemented in the Wolfram Language as BitXor[n1, n2, ...]. The illustration above plots the bitwise XOR of the array of numbers from to 31 (Stewart 2000; Rangel-Mondragon; Wolfram 2002, p. 871).