题解 | 查找输入整数二进制中1的个数
解题思路:
- 对
num
与1
进行求余操作,依据求余运算的特性,当二进制数中当前所判断的位值为1
时,经过与1
的求余运算后,该二进制数除了最后一位保持不变外,其余位都会被置为0
,这等价于对原二进制数进行位与运算后得到的结果为1
。随后,将该二进制数不断右移,通过重复上述判断过程,即可统计出该二进制数中1
的个数。
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextInt()) { int num = in.nextInt(); System.out.println(countBinaryOneTotal(num)); } } public static int countBinaryOneTotal(int num) { int rs = 0; while (num > 0) { if ((num & 1) == 1) { rs++; } num = num >> 1; } return rs; } }