方法2示意图:
package test;
import java.util.Random;
import java.util.Scanner;
public class WeiYunSuan3 {
public static void main(String[] args) {
Random random=new Random();
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int count=0;
//随机整数n右移
for (int i = 0; i < 32; i++) {
if (((n>>>i)&1)==1)
count++;
}
System.out.println(Integer.toString(n,2));
System.out.println("--------方法1结果----------");
System.out.println(count);
System.out.println("-------方法2结果------------");
//1左移,整数n的每一位都比较
count=0;
for (int i = 0; i < 32; i++) {
if (((1<<i)&n)==(1<<i)){
count++;
}
}
System.out.println(count);
System.out.println("------方法3结果--------------");
count=0;
while (n!=0){
n=n&(n-1);
count++;
}
System.out.println(count);
}
}
方法3示意图: