常见的二进制操作和位运算
1.基础知识
请参考:位运算总结
// 1.异或
a=0^a=a^0
a^a==0
// 2.交换两个数
a = a^b;
b = a^b;
a = a^b;
// 3.移除二进制中的最后一个1
a=n&(n-1)
// 4.获得最后一个1
diff=(n&(n-1))^n
2.经典题型
- 给定数组,其中只有某个数字出现1次(或者若干次,通常为2次或3次),或者两个数字出现多次…
- 汉明距离:即求位1的个数
- 交换两个数
常见的二进制操作和位运算
请参考:位运算总结
// 1.异或
a=0^a=a^0
a^a==0
// 2.交换两个数
a = a^b;
b = a^b;
a = a^b;
// 3.移除二进制中的最后一个1
a=n&(n-1)
// 4.获得最后一个1
diff=(n&(n-1))^n