1. 消去二进制最右侧1
x & (x - 1)
1.1 用 O(1) 时间检测整数n 是否是2 的幂次
bool checkPowerOf2(int n) {
// write your code here
return n > 0 && (n & (n - 1)) == 0;
}
1.2 求二进制数表示1的个数。
public int countOnes(int num) {
int count = 0;
while (num != 0) {
num = num & (num - 1);
count++;
}
return count;
}