黑马程序员技术交流社区
标题:
关于^位运算符的一些运用问题
[打印本页]
作者:
ytblght55
时间:
2013-6-21 10:37
标题:
关于^位运算符的一些运用问题
本帖最后由 巩建 于 2013-6-21 11:20 编辑
/*
需求:将x和y的值互相倒换,不通过第三方变量.
思路:一个数^一个数2次那么还是原数
步骤:
1、x=x ^y 将x的值^上y用x记录该值
2、y=x^y 因为x的值为x^y即等式为y=x^y^y,一个数^一个数2次那么该值为x
3、x=x^y 因为y的值为x^y,x的值为x^y,即等式可以写成x=x^y^x^y
疑惑点:?为什么x最后会等于2
*/
class Demo{
public statci void main(String args[])
{
int x =4;int y=2;
x=x^y;
y=x^y;
x=x^y;
System.out.println("y="+y+","+"x="+x);
}
}
复制代码
疑惑点:?为什么x最后会等于2即y的值. 即步骤三里面的赋值表达式x=x^y;为什么等于2即 y????
作者:
msileandroid
时间:
2013-6-21 10:54
1.x=x^y;
2.y=x^y;
3.x=x^y;
1:x=(x^y);
2:y=(x^y)^y;这时y=x;
3:x=(x^y)^(x);这时x=y;
作者:
陈鹏
时间:
2013-6-21 11:07
x=x^y;
y=x^y;即表示y=(x^y)^y=x
x=x^y;即表示x=(x^y)^x=y,这里的y已经用前面的换到的x代替了
一个数异或另外一个数两次得到的结果还是这个数
作者:
ytblght55
时间:
2013-6-21 11:14
msileandroid 发表于 2013-6-21 10:54
1.x=x^y;
2.y=x^y;
3.x=x^y;
:)理解了谢谢
作者:
ytblght55
时间:
2013-6-21 11:19
面试题,大家可以记忆下!!
作者:
ytblght55
时间:
2013-6-21 11:21
我相信很多人都会在这里卡壳,我也是新手,想了老半天!!!
作者:
Household
时间:
2013-12-8 21:14
这确实要转个弯,楼主技术分忒高,感谢提了个醒!!
作者:
静水流华
时间:
2013-12-8 21:18
这是典型的交换算法,
a = a^b;//将a变为一个中间过度变量
b = a ^b;// b =a
a = a ^b;//a =b
作者:
1007087594
时间:
2014-5-30 08:47
路过……
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2