狼人
走在SCJP的路上
posts - 12,  comments - 14,  trackbacks - 0
1、异或运算符的运算:0^0=0, 1^0=1, 0^1=1, 1^1=0
2、异或运算符可以做两个整数(即char、short、int、long)的交换:
1 public static void intSwap(int int1, int int2) {
2         int1 = int1^int2;
3         int2 = int1^int2;
4         int1 = int1^int2;
5     }
下面是明确的示例:
1         int x = 1984;
2         int y = 2009;
3         x = x^y;
4         y = y^x;
5         x = y^x;
6         // x: 2009;
7         System.out.println("x: " + x);
8         // y: 1984
9         System.out.println("y: " + y);

3、异或运算符的特点是:数a两次异或同一个数b(a=a^b^b)仍然为原值a
异或只有在整数上有定义,更确切的说,是位运算只在整数上有定义
从最根本的本质来看,将任何数据看做字节的组合,那么按照字节依次做位运算后的结果,也可以达成交换的目的。
posted on 2009-04-21 16:04 狼人 阅读(760) 评论(0)  编辑  收藏 所属分类: Java

只有注册用户登录后才能发表评论。


网站导航:
 

<2009年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用链接

留言簿

随笔分类

随笔档案

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜