题解 | #查找输入整数二进制中1的个数#
查找输入整数二进制中1的个数
https://www.nowcoder.com/practice/1b46eb4cf3fa49b9965ac3c2c1caf5ad
与运算时,n=(1,2,4,8)时,这些数与任何数进行计算时,只要最高位是1。计算后得到的值即为n。根据这个特性可以直接把所有符合条件的查出来。
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case int a = in.nextInt(); // 比较的值 int count=0; for (int i=0;i<=31;i++) { int pow=(int)Math.pow(2,i); // 进行与运算,如果相等,表示a的当前位置等于1 if ((a & pow)==pow) { count++; } } System.out.println(count); } } }