在java程序里面的异或用法:

相同输出0,不同输出1,例如: 
System.out.println(1^1); 输出0 
System.out.println(1^2);输出3,因为最后2个低位都不一样,所有输出3

异域的概念是相同为0不同为1.如果两个数值异或后的值相同,异或前可能不同。 
比如二进制:0010^0001=0011 而0000^0011=0011。 异或要慎用。

一道有意思的题目:很多成对出现数字保存在磁盘文件中,注意成对的数字不一定是相邻的,如2, 3, 4, 3, 4, 2……,由于意外有一个数字消失了,如何尽快的找到是哪个数字消失了?

由于有一个数字消失了,那必定有一个数只出现一次而且其它数字都出现了偶数次。用搜索来做就没必要了,利用异或运算的两个特性——1.自己与自己异或结果为0,2.异或满足 
交换律。

public static int findLost(int a[]){ 
        int result=0; 

       for(int i=0;i<a.length;i++) { 
            result^=a[i]; 
        } 
        return result; 
}

顺序打乱也没有关系。

 
 
 实现两个数的交换(不添加变量的情况下):
public static void main(String[] args){
int a=3;
int b=5;
a=a^b;
b=b^a;
a=b^a;
System.out.println(a+""+b);
}
}

  

最新文章

  1. 说说分析bug的一些心得
  2. linux中mysql密码找回的两种方式
  3. 【原】基于64位Centos6.2的mcrouter使用简介
  4. C# 顺序表操作
  5. Android简单计算器
  6. 《C#并行编程高级教程》第3章 命令式任务并行 笔记
  7. 能够兼容ViewPager的ScrollView
  8. JAVA 内存的认识【转】
  9. A Game of Thrones(18) - Catelyn
  10. 快速构建Windows 8风格应用29-捕获图片与视频
  11. Kattis - Peragrams
  12. radio里面value值与其他字符进行比较
  13. isNAN()的使用
  14. Little Sub and Isomorphism Sequences ZOJ - 4089
  15. 转:三款免费好用的Gif录屏神器
  16. QtQuick多页面切换、多页面切换动画、多个qml文件数据交互
  17. .net core 使用 ef core
  18. 前端学习之路-CSS介绍,Html介绍,JavaScript介绍
  19. MySQL常用辅助语句
  20. java对象与map对象相互转换

热门文章

  1. Vulkan Tutorial 22 Index buffer
  2. Swift组合逻辑
  3. Ext template 的使用
  4. SAP PI入门
  5. Spring AOP的注解实现
  6. Japanese Learning - 五十音图
  7. Go学习笔记(一)Let&#39;s 干
  8. [基础架构]PeopleSoft都有哪些进程运行在进程服务器上
  9. jmeter-Java-MongoDB 数据库增删改查操作
  10. Codeforces Round #423 B. Black Square