题解 | #求int型正整数在内存中存储时1的个数#
求int型正整数在内存中存储时1的个数
https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num = scanner.nextInt(); scanner.close();// Scanner 对象从控制台读取输入后,及时关闭它可以避免资源泄漏 int count = 0; while (num!= 0) { count += num & 1;//先按位与运算,它将变量 num 与数字 1 进行按位与操作。如果 num 是奇数,结果为 1;如果 num 是偶数,结果为 0。例如,当 num = 5(二进制为 101)时,5 & 1 的结果为 1;当 num = 6(二进制为 110)时,6 & 1 的结果为 0。 num >>>= 1;//在 Java 中是无符号右移赋值操作。 } System.out.println(count); } }