So, the XOR (^) operator makes sense for boolean operators. Its basically same as !=.
Now, for int operators it makes no sense to me. I did a little test and here are my results (dont know why stackoverflow insists on formatting it like code):
10 ^ 10 = 0
10 ^ 11 = 1
10 ^ 12 = 6
10 ^ 13 = 7
10 ^ 5 = 15
Reversing operators appears to not have any effect. What is the pattern here? And, also, how could this possibly be useful in any real world application?