java运算符新用法和^新认识

public class Demo1 {

    public static void main(String[] args) {
boolean t = false | true;
System.out.println(t);
t |= false;
System.out.println(t);
t = t&false;
System.out.println(t);
t &= false;
System.out.println(t);
t = t^true;
System.out.println(t);
t^=true;
System.out.println(t);
}

^ 异或运算符

真^假=真  假^真=真  假^假=假  真^真=假

只要两个条件同时为真或假,其结果都为假

假如现在有这个场景现在公司需要两个程序员,因为考虑到工作积极性,需要一男一女,

老总在最后审核时必须可能是这样的

if(!(x==男^y==男||x==女^y==女)){

  直接PASS

}

JAVA请使用异或运算符^, 实现两个整数的交换

Scanner in=new Scanner(System.in);
int A=in.nextInt();
int B=in.nextInt();
A=A^B;
B=B^A;
A=A^B;
System.out.println(A+" "+B);

很多成对出现数字保存在磁盘文件中,注意成对的数字不一定是相邻的,如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;
}
上一篇:php中赋值和引用真真的理解


下一篇:综合小实验:GNS3配合VMware搭建DHCP、DNS、Web服务