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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liyudong 中级黑马   /  2016-11-3 22:56  /  884 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.对两个整数变量的值int x = 5; int y = 3;进行互换。
//使用异或方式
int a = 10;
int b = 20;
a ^= b;
b ^= a;
a ^= b;
System.out.println("a="+a);
System.out.println("b="+b);
10的二进制为1010,20的二进制为10100,30的二进制为11110,按照 异或 的逻辑确实是正确结果,不过为什么这样可以进行互换?

4 个回复

倒序浏览
你确定你没写错吗,应该是左边a,b,a右边a^b吧
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
哦哦  我看错了  你这个没问题
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
二进制运算,懒得研究
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
一个数重复异或一个数等于其本身啊。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马