逻辑运算符的问题
请问下什么是异或赋值啊!能给个例子看看吗?  
下面的是什么意思呢?
     a = a ^ b;  
     b = a ^ b   
     a = a ^ b
还有为什么赋值给a,b时结果怎么并不是相加的
	int a=3;
		int b=7;
		a^=b;
		System.out.println(a);
输出的结果为:4
但是当赋值为下面的时候它又是相加的
int a=3;
		int b=8;
		a^=b;
		System.out.println(a);
输出结果为:8
弄的好糊涂啊!希望高手能指点下!小弟刚刚接触这个!
------解决方案--------------------
按位异或运算,相同为0,不同为1。。3的二进制是00000011,7的二进制是00000111。异或后100,换算成十进制就是4了。
8的二进制是0001000,3与8异或后0001011,换算成十进制是11