题解 | 求int型正整数在内存中存储时1的个数
#刷题我是认真的# #二进制中1的个数# #2025,我想......#
关键点:
- 二进制操作
- 不断左移,将数字变小,直到等于0
- 常规的二进制操作:
- n^1 得到的二进制数除了最后一位外,其余均为0
- 1的二进制数为: 00000001
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int num = in.nextInt(); int rs = 0; while (num > 0) { if ((num & 1) == 1) { rs++; } num = num >> 1; } System.out.println(rs); } }