在传智播客视频基础上曾看到的1道题,是关于两变量值交换的问题,当时老师给出的方法是借助一个第三方变量,用例如下: 
int a=10; 
int b=5; 
int temp; 
 
temp=a; 
a=b; 
b=temp; 
 
Console.WriteLine("a={0} b={1}",a,b); 
这种方法显然是很容易实现的,但由于以前在公司笔试的时候,曾经见过1个题目的要求是在不借助第三方变量的情况下交换两变量的值,于是就去网上搜索了一下此种要求的解决方法,然后搜索到两种方法: 
 
方法一:利用+ 
 
a += b; 
b = a - b; 
a -= b; 
显然这种方法也很简单,刚开始把a+b的值赋给了a;然后从a的值中减去b,从而使b的值为原本a的值;再从a中减去b的值(相当于原本a的值),使a得到原本b的值;从而在不借助第三方变量的情况下达到了两变量值互换的要求。 
 
方法二:利用^ 
 
a ^= b; 
b ^= a; 
a ^= b; 
这种方法就不解了,求高手帮忙解释下符号^代表的是什么意思! 
 
 
 |