^ 异或运算:true^true 结果为false,
true^false 结果为true,
规律是:同真、同假 都为假;一真一假 则为真 。
在二进制中,真用1代表,假用0代表, 都为1或0时是假,结果为0;一个是1一个是0时为真,结果是1。
举个例子:int a = 3,b = 6;
转化成二进制 a:0011 b:0110
0011
^0110
----------
0101 --->转成十进制:5 即 3^6 = 5
n=n^m;
m=n^m; //m = (n^m)^m = n n^了m两次,结果仍是n
n=n^m; //n = (n^m)^n = m
这里记住一句话就OK啦:一个数^上另一个数两次,结果不变。
|