Cuando se le presentan dos argumentos booleanos, el operador^realiza una acción exclusiva o, p.operador groovy^
true^true == false
true^false == true
false^true == true
false^false == false
Cuando se le presentan dos argumentos numéricos, hace algo, pero no tengo idea de qué. Al principio pensé que era debido división modular
(5^5) == 0
Sin embargo
(10^4) == 14
Así que no es división modular, que es una especie de desplazamiento de bit?
Es bit a bit exclusivo o, al igual que Java http://stackoverflow.com/questions/460542/operator-in-java –