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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 ytblght55 于 2013-6-23 00:30 编辑

  1. <P>
  2. /*</P>
  3. <P> </P>
  4. <P><FONT color=yellowgreen size=4>一道经常遇到的面试题,看了的同学赚到了,最好能理解.
  5. </FONT>
  6. 需求:将x和y的值互相倒换,不通过第三方变量实现
  7. 思路:一个数^一个数2次那么还是原数
  8. 步骤:
  9. 1、x=x ^y 将x的值^上y用 x(此x可以理解为X1) 记录该值
  10. 2、y=x^y 因为x(即X1)的值为x^y即等式可以理解为y=x^y^y,一个数^一个数2次那么该值为x
  11. 3、x=x^y 这里等式右边的x已经在等一个等式被赋值了(即X1),y在第二个等式被赋值可以理解为(y=X1^y),那么该等 式就可以理解为x=X1^X1^y,得到y的值。
  12. */
  13. class Demo4{
  14. public static void main(String args[])
  15. {
  16. int x =4;int y=2;
  17. x=x^y;   // 100
  18.           // ^ 010
  19. //--------------------------------
  20.            // 110=6
  21. y=x^y;
  22.         // ^ 010
  23. //--------------------------------------
  24.               // 100=4
  25. x=x^y;
  26.         // ^ 110
  27. //-----------------------------------------
  28.             // 010=2

  29. System.out.println("y="+y+","+"x="+x);
  30. }
  31. }
  32. </P>
复制代码

评分

参与人数 1技术分 +1 收起 理由
张勇1993 + 1 很给力!

查看全部评分

6 个回复

倒序浏览
给力               
回复 使用道具 举报
^这个符号键盘都打不出来,打出来就是6和……,话说它是什么意思?
回复 使用道具 举报
秦兰之 发表于 2013-6-23 06:57
^这个符号键盘都打不出来,打出来就是6和……,话说它是什么意思?

^ 位运算符,异或,只有在两个比较的位不同时其结果是1,否则结果为0。
回复 使用道具 举报
秦兰之 发表于 2013-6-23 06:57
^这个符号键盘都打不出来,打出来就是6和……,话说它是什么意思?

因为你的是中文输入状态.转换成英文状态即可!
回复 使用道具 举报
话说这也给你加分?!
回复 使用道具 举报
8047107 发表于 2013-6-23 23:45
话说这也给你加分?!

嘘....别声张啊!!!:D
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马