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)

Respuestas a la pregunta(7)

Su respuesta a la pregunta