在传智播客视频基础上曾看到的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;
这种方法就不解了,求高手帮忙解释下符号^代表的是什么意思!
|