1、位异或运算的原理
1、位异或使用^表示,位异或运算是二进制运算,所以只有0和1,假=1,真=0;所以0^1=1,0^0=0,1^1=0,即真假为假,真真为真,假假为真
代码举栗:
int a = 3; //二进制: 00000011
int b = 2; //二进制: 00000010
/*
* a=00000011 0与0=0,1与1=0,1与0=1
* b=00000010
* c=00000001 = 十进制等于1
* */
int c = a^b;
System.out.println(c);//输出1
2、位异或运算的应用
1、可用于无需额外变量交换两个变量的值
代码举栗:
public class HashSet02 {
public static void main(String[] args) {
int a = 10; //二进制: 00001010
int b = 15; //二进制: 00001111
/*
* a=00001010
* b=00001111
* <1>:a=00000101 十进制:a=5
* <2>:b=00001010 十进制:b=10
* <3>:a=00001111 十进制:a=15
* */
a = a^b;//<1>步 a=5
System.out.println(a);//输出5
b = b^a;//<2>步
System.out.println(b);//输出10
a = a^b;//<3>步
System.out.println(a);//输出15
System.out.println(b);//输出10
}
}
特点: 1、就算是浮点数,位异或运算也能保证精度 2、运算效率极高