^ (XOR) é como se fosse o operador (!=) (Diferente) se aplicado a variáveis booleanas.
true ^ true == false (pois true não é diferente de true)
true ^ false == true (pois true é diferente de false)
false ^ true == true (pois false é diferente de true)
false ^ false == false (pois false não é diferente de false).
^(XOR) é o operador “Ou Exclusivo” que significa que a ação de um exclui a do outro, assim sendo, ele retorna true apenas quando um é true e o outro é false.
só reforçando o que o Edson falow xor é OU EXCLUSIVO.
Ex :
A B XOR
0 0 false
0 1 true //note aqui é true pois o dois bits são diferentes
1 0 true
1 1 false
^ so vai retornar true se um dos operadores retornar false, caso contrario sempre false.
entao com o ^vc tem q ter: true ^false OU false ^true para q ele retorne um true.
[quote=LPJava] ^ so vai retornar true se um dos operadores retornar false, caso contrario sempre false.
entao com o ^vc tem q ter: true ^false OU false ^true para q ele retorne um true.[/quote]
Mas se os dois for false, o operador ^ irá retornar false. A regra é:
Os valores têm que ser diferentes (um TEM QUE SER true e o outro TEM QUE SER false).