华为机考HJ15题解 | 求正整数在内存中存储时1的个数
求int型正整数在内存中存储时1的个数
https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9
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 = countOnes(a);
System.out.println(count);
}
}
public static int countOnes(int num) {
int count = 0;
while (num != 0) {
count += num & 1;
num = num >>> 1; // 无符号右移,将num的二进制表示向右移动一位
}
return count;
}
}
具体的实现逻辑如下: 首先定义一个整型变量count,用来统计1的个数,初始化为0。

