版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Android_chunhui/article/details/87926046
题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路:
将二进制数与自身-1进行与操作,可以消掉最右边的1,所以我们循环进行这种操作直到数值变成全0即可。操作的次数就是1的个数。
int NumberOf1(int n) {
int cnt = 0;
while (n)
{
n = n & (n - 1);
cnt++;
}
return cnt;
}