二进制表示中1的个数
题目描述:
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
题目分析:
每次将n二进制表示中最后一个1变成0,其余不变,直到n为0为止。
AC代码:
class Solution {
public:
int NumberOf1(int n) {
int ans=0;
while(n!=0)//只要n不为0(二进制表示中还有1),就继续
{
ans++ ;
n=n&(n-1) ;//效果是将n二进制表示中最后一个1变成0,其余不变
}
return ans;
}
};