二进制中1的个数
- 时间限制:1秒空间限制:32768K
题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
注意:
1.n&(n-1) 是去掉n最右边的1
2.n可能是负数,所以用n!=0
class Solution {
public:
int NumberOf1(int n) {
int num = 0;
while(n != 0){
n = n&(n-1);
num++;
}
return num;
}
};
求零的个数
int fun(unsigned int x)
{
int n=0;
while((x+1))
{
n++;
x=x|(x+1);
}
return n;
}