O operador XOR é um recurso simples e útil dentro da linguagem Java. Ele aparece tanto em operações com inteiros quanto com booleanos. A ideia central é sempre a mesma: comparar dois valores e retornar um resultado baseado na diferença entre eles.
O que é XOR
XOR significa exclusive OR. É um operador lógico que retorna verdadeiro ou 1 quando os valores comparados são diferentes. Quando são iguais, retorna falso ou 0.
Em Java, o símbolo usado é ^.
XOR com inteiros
Quando aplicado a inteiros, o XOR trabalha bit por bit. Cada bit do primeiro número é comparado com o bit correspondente do segundo número.
Exemplo
int a = 5;
int b = 3;
int resultado = a ^ b;
System.out.println("Resultado: " + resultado); // 6
Forma binária dos números:
5 -> 0101
3 -> 0011
Comparação bit a bit:
0 ^ 0 = 0
1 ^ 0 = 1
0 ^ 1 = 1
1 ^ 1 = 0
Resultado final:
0101
0011
----
0110 -> 6
Esse tipo de operação aparece em manipulação de bits, flags e até em lógicas de criptografia simples.
XOR com booleanos
Com booleanos, o comportamento é direto. O operador retorna true quando os valores são diferentes.
Exemplo
boolean x = true;
boolean y = false;
boolean resultado = x ^ y;
System.out.println("Resultado: " + resultado); // true
Tabela verdade:
true ^ true = false
true ^ false = true
false ^ true = true
false ^ false = false
Por que o XOR importa
Mesmo sendo simples, o XOR é útil em várias situações:
Testar diferenças
Criar lógicas booleanas mais limpas
Manipular bits para configurações ou permissões
Implementar operações comuns em criptografia e checagem de integridade
Simplificar expressões onde OR e AND não se encaixam bem


