剑指offer 15 二进制中1的个数
- 按位与运算“&”优先级比“==”低,所以与运算两侧要加括号
- 注意巧妙地n&(n-1)
public class Solution {
public int NumberOf1(int n) {
int count = 0;
int flag = 1;
while (flag != 0) {
if ((n & flag) != 0) {
count++;
}
flag = flag << 1;
}
return count;
}
}