Operador lógico y binario de OR (o) exclusivo utilizado en expresiones y condiciones.
La palabra reservada XOR y el símbolo ^^ son sinónimos.
XOR lógico: Se evalúan primero las condiciones de la derecha e izquierda del operador y si sólo una de ambas es cierta, este operador devolverá cierto; en caso contrario el operador devolverá siempre falso.
FALSO XOR FALSO = FALSO
FALSO XOR CIERTO = CIERTO
CIERTO XOR FALSO = CIERTO
CIERTO XOR CIERTO = FALSO
Se utiliza para comprobar que se cumplan una, y sólo una, de las dos condiciones que se especifican, por ejemplo:
(y>0 XOR x>0)
Para comprobar que la primera variable sea mayor que 0, o bien ('o' exclusivo), que lo sea la segunda (pero no la primera).
XOR binario: Evalúa los bits de los resultados de las expresiones anterior y posterior al operador generando, como resultado, un valor que tendrá a 1 solamente los bits que tuvieran a 1 una, y sólo una, de las expresiones.
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
Esta regla se aplicará a todos los bits de los operandos (en el lenguaje son enteros de 32 bits).
Nota: Este operador funciona indistintamente como lógico y binario debido a que en el lenguaje se interpretan las expresiones lógicas ciertas como las que tienen el último bit a 1 (el bit 0, de peso 1), es decir, los números impares (1, -1, 3, -3, ... ), y como expresiones lógicas falsas las que tienen el último bit a 0 (los números pares: 0, 2, -2, 4, -4, ...).
El operador XOR únicamente dejará a 1 el último bit (sólo devolverá cierto como resultado} cuando lo tuviera a 1 uno, y sólo uno, de ambos operandos (cuando únicamente una de las dos expresiones fuera cierta).
Nota: El símbolo ^ también puede utilizarse como un sinónimo más de XOR y ^^.