题目描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
思路:求二进制1的个数,首先想到的是用该数每一位都和1进行 与运算,让1进行左移,计算1的个数。
第一种方法:
public class Solution {
public int NumberOf1(int n) {
int flag = 1;
int count = 0; // 统计1的个数
while (flag != 0) {
if ((n & flag) != 0) {
count++;
}
flag = flag << 1;
}
return count;
}
}
第二种做法:用java中现成的方法
public class Solution {
public int NumberOf1(int n) {
return Integer.bitCount(n);
}
}