1. 常规思路
public int NumberOf1(int n)
{
// 将该整数转成二进制
String binaryString = Integer.toBinaryString(n);
int ncount = 0; // 统计二进制中1的个数
for(int i=0; i<binaryString.length(); i++)
{
if (binaryString.charAt(i) == '1')
{
ncount++;
}
}
return ncount;
}
2. 位运算
注意这里的n可能为负数。
public int NumberOf1(int n)
{
int ans = 0;
while (n != 0)
{
n = n&(n-1); // 最低位1置0
ans++;
}
return ans;
}