1. 符号 ^
2. 特点:
两个位相同为 0, 不同为 1
0 ^ 1 = 1
0 ^ 0 = 0
1 ^ 1 = 0
3. 性质
(1)性质1
0 ^ N = N
N ^ N = 0
(2)性质2
可想象成无进位相加
(3)性质 3
符合交换律和结合率
4. 应用 —— 交换两个数
public void swap(int a, int b){
a = a ^ b;
b = a ^ b;
a = a ^ b;
}
补充: 如何通过位运算得到最右侧的 1
a & (~a + 1)
int a = 30;
a = a & (~a + 1); // 只留下最右侧的 1