剑指offer——二进制中1的个数
描述:输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。
用按位与
class Solution {
public:
int NumberOf1(int n) {
int res = 0;
vector<int>m;
int abs ;
if(n>=0)abs = n;
else abs = -n;
for(int i = 0;i<32;i++)
{
m.push_back(((n>>i))&1);
}
for(int i = 0;i<m.size();i++)
{
if(m[i])res++;
}
return res;
}
};