A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

zhxueqiu

中级黑马

  • 黑马币:0

  • 帖子:14

  • 精华:0

本帖最后由 zhxueqiu 于 2013-6-21 14:55 编辑

//两个变量值交换
class Demo2
{
        public static void main(String[] args)
        {        int x =3,y=2;
                x=x^y;
                y=x^y;
                x=x^y;
                System.out.println("x="+x+", y="+y);
        }
}

评分

参与人数 1技术分 +1 收起 理由
Just_Only + 1 加油!!!

查看全部评分

9 个回复

倒序浏览
                x=x^y;   
                y=x^y;      -->   (x^y)^y
                x=x^y;      -->   (x^y)^x
回复 使用道具 举报
谢谢  三Q
回复 使用道具 举报
Kurt_cobain 发表于 2013-6-21 02:59
x=x^y;   
                y=x^y;      -->   (x^y)^y
                x=x^y;      -->  ...

用文字说一下呗!做一下注释.
回复 使用道具 举报
zhxueqiu 发表于 2013-6-21 12:08
用文字说一下呗!做一下注释.

x=x^y;   
y=x^y;   把上面的x带进去。就是(x^y)^y。一个数异或同一个数两次。结果还是那个数。y=x  
x=x^y    把上面的x再带进去。现在y变了,根据上一步y=x。就是(x^y)^x。一个数异或同一个数两次。结果还是那个数。x=y
两个就互换过来了。

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1

查看全部评分

回复 使用道具 举报
问题已解决,你乐我也乐,如果问题已经解决,请把帖子改为已解决,论坛美好的风格靠大家一起努力,谢谢合作。
回复 使用道具 举报
本帖最后由 zhxueqiu 于 2013-6-21 15:19 编辑
Kurt_cobain 发表于 2013-6-21 13:52
x=x^y;   
y=x^y;   把上面的x带进去。就是(x^y)^y。一个数异或同一个数两次。结果还是那个数。y=x  
x=x ...

好吧 我知道了,谢谢.
回复 使用道具 举报
emos-c 中级黑马 2013-6-21 15:26:00
8#
zhxueqiu 发表于 2013-6-21 15:08
好吧 我知道了,谢谢.

回复下楼上这个问题
int x =3, y=2;  //声明变量并赋值
x=x^y;           //用3^2结果为1  此时     x=1;
y=x^y;           //在用x值异或2也就是用1异或2结果是3,在把3赋值给y这时y的值是3了,此时y=3;
x=x^y;         //x=1^3;  1^3=2;              x=2;
x和y完成换位了
回复 使用道具 举报
Just_Only 发表于 2013-6-21 14:28
问题已解决,你乐我也乐,如果问题已经解决,请把帖子改为已解决,论坛美好的风格靠大家一起努力,谢谢合作 ...

么有问题
回复 使用道具 举报
Just_Only 怎么就这一个帖子可以修改成已解决,我的其他帖子怎么没有那个选择列表?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马