日期:2014-05-17  浏览次数:20965 次

逻辑运算符的问题
请问下什么是异或赋值啊!能给个例子看看吗? 
下面的是什么意思呢?
  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