题目:输入一个数,统计二进制中有几个1
自己的理解可能单纯的从数学方面考虑问题,而没有通过计算机位运算进行思考问题。
这是正确的思路共大家进行学习。
package com.tong;
public class CountOnesInBinary {
public static void main(String[] args) {
int num = 2; // 要统计的整数
int count = 0; // 计数器
while (num != 0) {
//```这里,我们将 num 和1进行位与运算,目的是只关注最低位,将其他位设置为0。如果最低位为1,则结果为1;如果最低位为0,则结果为0。
if ((num & 1) == 1) {
count++;
}
// 右移一位,检查下一位
num = num >> 1;
}
System.out.println("二进制中1的个数为: " + count);
}
}