本帖最后由 ytblght55 于 2013-6-23 00:30 编辑
- <P>
- /*</P>
- <P> </P>
- <P><FONT color=yellowgreen size=4>一道经常遇到的面试题,看了的同学赚到了,最好能理解.
- </FONT>
- 需求:将x和y的值互相倒换,不通过第三方变量实现
- 思路:一个数^一个数2次那么还是原数
- 步骤:
- 1、x=x ^y 将x的值^上y用 x(此x可以理解为X1) 记录该值
- 2、y=x^y 因为x(即X1)的值为x^y即等式可以理解为y=x^y^y,一个数^一个数2次那么该值为x
- 3、x=x^y 这里等式右边的x已经在等一个等式被赋值了(即X1),y在第二个等式被赋值可以理解为(y=X1^y),那么该等 式就可以理解为x=X1^X1^y,得到y的值。
- */
- class Demo4{
- public static void main(String args[])
- {
- int x =4;int y=2;
- x=x^y; // 100
- // ^ 010
- //--------------------------------
- // 110=6
- y=x^y;
- // ^ 010
- //--------------------------------------
- // 100=4
- x=x^y;
- // ^ 110
- //-----------------------------------------
- // 010=2
- System.out.println("y="+y+","+"x="+x);
- }
- }
- </P>
复制代码 |