原题题目
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/eaf510e98e583d169c6a0a4ee16417dd.png)
代码实现
class Solution {
public:
int NumberOf1(int n) {
int res=0;
for(int i=0;i<32;i++)
if(n>>i&1)
res++;
return res;
}
};
lowbit
lowbit实现
class Solution {
public:
int NumberOf1(int n) {
int res=0;
while(n) n-=n& -n,res++;
return res;
}
};
求n的第k位的用法n >> k&1
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/85f5e7fbcca6b059ad6ff406b0f07dd8.jpeg)