第一种方法
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int count = 0;
while (num != 0) {
if (num % 2 == 1) {
count++;
}
num = num / 2;
}
System.out.println(count);
}
第二种方法
- 必须要循环32次,每个bit位都要遍历
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
int count=0;
for(int i=1;i<=32;i++){
if(((num>>i)&1)==1){
count1++;
}
}
System.out.println(count);
}
第三种方法
- 最高效的方法
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
int count=0;
while(num!=0){
num=num&(num-1);
count2++;
}
System.out.println(count);
}