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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 禾叶青青 中级黑马   /  2015-7-15 00:21  /  796 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


                   int a =10;
                   int b =20;
                   开发:临时变量
                            inttemp = a;
                            a= b;
                            b= temp;
                   面试:位^运算符
                            a= a ^ b;
                            b= a ^ b;
                            a= a ^ b;

6 个回复

倒序浏览
是这样啊,其实还有两种常见的方法,java中做一件事方法很多
回复 使用道具 举报
本帖最后由 懒人不是懒 于 2015-7-15 08:56 编辑

a=a^b;//把a和b异或的值赋予a.b=a^b;//把a和b异或等于最开始的a,
a=a^b;//等于最开始的b,
问下,最后那个a=a^b是什么个过程?
回复 使用道具 举报
懒人不是懒 发表于 2015-7-15 08:54
a=a^b;//把a和b异或的值赋予a.b=a^b;//把a和b异或等于最开始的a,
a=a^b;//等于最开始的b,
问下,最后那个a ...

设a为3b为4
第一次a=3^4
第二次b=3^4^4=3
第三次a=3^4^3=4
这么说你明白了么?
回复 使用道具 举报
蔡锐 发表于 2015-7-15 09:02
设a为3b为4
第一次a=3^4
第二次b=3^4^4=3

懂了,谢谢指教
回复 使用道具 举报
其实方法有很多种,定义一个第三方变量或者通过抑或,减法,等多种运算。
回复 使用道具 举报
int a=3, b=4;
a=a+b;
b=a-b;
a=a-b;
这种方法有局限性,就是a+b不能超过int类型的最大值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马