No Java XOR com três entradas verdadeiras retorna verdadeiro. Por quê

O código a seguir

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));

outputs:

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 que o XOR retornatrue quando todas as três entradas foremtrue?

Se é lógica válida, como posso implementar uma lógica que retornetrue s se um dos elementos de entrada fortrue (não importa quantas entradas eu forneça)?

questionAnswers(7)

yourAnswerToTheQuestion