题目
输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。
思想
将整数左移,与0001相与,为1则count++
如何判断结束呢?为0吧
代码
public class Solution {
public int NumberOf1(int n) {
//将整数左移,与0001相与,为1则count++
//如何判断结束呢?为0吧
if(n == 0)
return 0;
int count = 0;
while(n != 0)
{
count += n & 1;
n = n >>> 1;
}
return count;
}
}