题目
输入一个整数,输出该数二进制数1的个数
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
/*
* 法1:1移位比较
*/
int count = 0;
for (int i = 0; i < 32; i++) {
if((n&(1<<i))==(1<<i)){
count++;
}
}
System.out.println(count);
/*
* 法2:原数值移位比较
*/
count = 0;
for (int i = 0; i < 32; i++) {
if(((n>>>i)&1)==1){
count++;
}
}
System.out.println(count);
/*
* 法3:原数值逐步消1
*/
count = 0;
while(n!=0){
n = (n-1)&n;
count++;
}
System.out.println(count);
}
}