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;
这种方法就不解了,求高手帮忙解释下符号^代表的是什么意思!
作者: 黄山 时间: 2011-12-26 19:21
按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。作者: 刘冠杰 时间: 2011-12-26 21:20
这位仁兄讲的还是不太清楚哦,能否讲的具体点!?作者: 黄山 时间: 2011-12-26 22:22
a 1111
b 0000
a^= b; a=a^b
a=1111
b ^= a;
b=1111
a ^= b;
a=0000 作者: 张旭 时间: 2011-12-27 00:10
将a和b转换为二进制位: a=1010 b=0101 异或运算就是进行二进制运算 相同出0 相异出1
a ^= b 运算结果为 a=1111
b ^= a 运算结果为 b=1010
a ^= b 运算结果为 a=0101
记得口诀 相同出0 相异出1