题目:输入一个整数,输出该数二进制表示中1的个数。
1.将输入的整数转为二进制数,再将其转为字符数组。循环判断1的个数。
public int NumberOf1(int n) {
if (n == 0)
return 0;
char[] ch = Integer.toBinaryString(n).toCharArray();
int count = 0;
for (int i = 0; i < ch.length; i++) {
if (ch[i] == '1') {
count++;
}
}
return count;
}
2.通过与运算来求得结果
public static int NumberOf1(int n) {
if (n == 0)
return 0;
int count = 0;
while (n != 0) {
count++;
n = n & (n - 1);
}
return count;
}