位运算能节约内存和使用程序性能更好:
- 用位运算实现两个 整型数的交换
void exchange(int a, int b) { a ^= b; b ^= a; a ^= b; }
- 用位运算实现取两个整数的(a+b)/2的向下取整值(或求均值)
int average(int a, int b) { return (a&b) + ((a^b)>>1); }
- 判断一个整数是否是2^N次方
!(x&(x-1))
- 迭代式 x = x&(x-1)可用于统计二进制中1的个数。
- 迭代式 x = x|(x-1)循环地把x的二进制中从右往左最后一位变成1。