一、題目
二、思路
-
對于整數,兩種方法
– 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;
}
};