学习目标:
目标:熟练运用Java所学知识
学习内容:
本文内容:使用java解决 查找输入整数二进制中1的个数
题目描述
输入一个正整数,计算它在二进制下的1的个数。 注意多组输入输出!!!!!!
输入描述:
输入一个整数
输出描述:
计算整数二进制中1的个数
示例1
输入 5
输出 2
说明 5的二进制表示是101,有2个1
解题思路
这个题就是使用位运算判断最低位是不是1
- 使用位运算 & ,将输入的数字num & 1,如果得到的是 1 表示最低位是1,同时count++,否则不是1
- 将num进行位移运算 sum>>=1,右移一位,表示将sum的二进制表示右移一位,向最左侧添0
- 循环进行以上操作,直到sum=0,
实现代码
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int num=sc.nextInt();
int count=0;
while(num>0){
if((num&1)==1){
count++;
}
num>>=1;
}
System.out.println(count);
}
}
}