日志文章

2007年06月21日 16:14:12

再谈直接交换两个整型值

前篇《直接交换两个int变量的值》中所用方法太复杂,网友fxismonk提出的方法很好,而且很好懂。推荐使用。今天下载了JavaOne 2007的一些pdf,发现其中也有讲这个的。其思想就是使用xor。和网友fxismonk提出的思路一样,就是构造一个特殊数,通过这个数,需交换数可以彼此发现。代码如下:
/**
*
*/
package com.yang.test.stringtest;

/**
* @author yangbagang
*
*/
public class ChangeOnRox {

     /**
      * @param args
      */
     public static void main(String[] args) {
           int x = 34;
           int y = 78;
           System.out.println("x=" + x);
           System.out.println("y=" + y);
           x = x ^ y;
           y = x ^ y;
           x = x ^ y;
           System.out.println("x=" + x);
           System.out.println("y=" + y);
     }

}
运行输出如下 :

x=34
y=78
x=78
y=34
可以发现的确是交换了。唉,世界上牛人就是多啊。可我不是。

Tags: java   xor  

类别: 无分类 |  评论(0) |  浏览(3748) |  收藏
发表评论
看不清楚,换一张