En Java XOR con tres entradas verdaderas devuelve verdadero. ¿Por qué
El siguiente código
System.out.println("1 0 0: " + (true ^ false ^ false));
System.out.println("1 0 1: " + (true ^ false ^ true));
System.out.println("1 1 0: " + (true ^ true ^ false));
System.out.println("1 1 1: " + (true ^ true ^ true));
System.out.println("0 0 0: " + (false ^ false ^ false));
System.out.println("0 0 1: " + (false ^ false ^ true));
System.out.println("0 1 0: " + (false ^ true ^ false));
System.out.println("0 1 1: " + (false ^ true ^ true));
salidas:
1 0 0: true
1 0 1: false
1 1 0: false
1 1 1: true
0 0 0: false
0 0 1: true
0 1 0: true
0 1 1: false
¿Por qué XOR devuelvetrue
cuando las tres entradas sontrue
?
Si es una lógica válida, ¿cómo puedo implementar la lógica que devuelvetrue
solament si uno de los elementos de entrada estrue
(no importa cuántas entradas proporcione)