题目链接:二进制中1的个数
题意:
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
解题思路:
设置一个数1,然后依次向左移,判断当前 数字与 n的值,如果不为0,那么就加1
class Solution {
public:
int NumberOf1(int n) {
int ans = 0, k = 1;
while(k){
if((n & k) != 0){ // n & k 不为0,ans++
ans++;
}
k = k << 1; // k向左移
}
return ans;
}
};