黑马程序员技术交流社区
标题:
java用异或运算交换两个变量的值分析
[打印本页]
作者:
ToGame
时间:
2015-9-15 18:21
标题:
java用异或运算交换两个变量的值分析
交换两个变量的值,最有常用的方法就是使用临时变量了
例:
int temp=a;
a=b;
b=temp;
这种是最常见的:
但还有另一种方法:
就是异或运算:
a=a^b;
b=a^b;
a=a^b;
这才是我要讲的:
我是用代入法的思想来理解它:
b=a^b用代入法则是 b=a^b^b
根据异或规则,一个数据被同一个数据异或两次则返回原值
因此这里返回的是a,等价于b=a;
第二个 a=a^b;用代入法后的原始公式是 a=(a^b)^(a^b^b)
计算后的公式 a=a^b^a
因此这里返回的是b
到此交换就完成了,OK
作者:
guoqule
时间:
2015-9-15 18:56
讲的不错
作者:
往事如风555
时间:
2015-9-16 21:46
一个数据被同一个数据异或两次则返回原值,你这只是一个结论,要解释一下的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2