& 运算
- num & 1 获取num 二进制末尾,可以判断num的奇偶性
- x & (x-1) x的二进制最后一个1变成0
异或运算
a⊕b = (¬a ∧ b) ∨ (a ∧¬b)
相同为0,不同为1
0^0 = 0,
1^0 = 1,
0^1 = 1,
1^1 = 0
0异或任何数等于该数本身
异或的几条性质:
1、交换律 a ^ b = c ===> a ^ c = b , b ^ c = a
2、结合律 即 (a ^ b) ^ c == a ^ (b ^ c)
3、对于任何数x,都有x ^ x = 0,x ^ 0 = x
4、自反性: a ^ b ^ b = a ^ 0 = a;
应用
- ^ 运算的逆运算是它本身,也就是说两次异或同一个数最后结果不变,即(a ^ b) ^ b = a。
- 实现两个值的交换,而不必使用临时变量。
例如交换两个整数a=10100001,b=00000110的值,可通过下列语句实现:
a = a^b; //a=10100111
b = b^a; //b=10100001
a = a^b; //a=00000110