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;
}