一、题目
二、思路
-
对于整数,两种方法
– 1、取余法
将n取余,统计为1的个数
– 2、向右移位法
将n&1,当不为0时,说明这个位是1;然后n>>1;向右移位,左边补0;
- 对于负数,向右移位,但是注意左边是补1的,不是补0
三、代码
class Solution {
public:
int NumberOf1(int n) {
int pos=0;
int Count=0;
if(n==0)
{
return 0;
}
for(int i=0;i<32;++i)
{
if(n & 1!=0)
{
Count++;
}
n >>=1;
}
return Count;
}
};