1. 问题描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
2. 解题思路
①:假如输入n ,如果第 x 位上是1,则肯定有(n>>x)&0x00000001 == 1;
3. c/c++源代码
class Solution {
public:
int NumberOf1(int n) {
int num = 0;
for(int i = 0;i < sizeof(int)*8;i++)
{
num += (n>>i)&0x01;
}
return num;
}
};
【转载文章务必保留出处和署名,谢谢!】
因篇幅问题不能全部显示,请点此查看更多更全内容