java求解一给定数字的二进制表达中的1的个数

来源:互联网 发布:逆战天梯卡数据不扣分 编辑:程序博客网 时间:2024/06/05 22:16

    题目:

    给定一个整数,正负均可能,将该数字的二进制表示中的1的个数统计一下输出,题目很简单,目的是练习一下,如:输入10输出应该为2

    下面是具体的实现:

package offer;/* * Author:沂水寒城Scanner常见用法:delimiter()返回此 Scanner 当前正在用于匹配分隔符的 Pattern。hasNext()判断扫描器中当前扫描位置后是否还存在下一段。(原APIDoc的注释很扯淡)hasNextLine()如果在此扫描器的输入中存在另一行,则返回 true。next()查找并返回来自此扫描器的下一个完整标记。nextLine()此扫描器执行当前行,并返回跳过的输入信息。 */import java.util.Scanner;public class Test10 {public static int oneNums(int num){num=num>0?num:-num;int count=0;while(num!=0){int mod=num%2;if (mod==1)count++;num/=2;}return count;}public static void main(String [] args){Scanner sc=new Scanner(System.in);System.out.println("请输入一个数字:"); int num=sc.nextInt();int count=oneNums(num);System.out.println("该数字的二进制中1的个数为:"+count);}}

结果如下:

请输入一个数字:10该数字的二进制中1的个数为:2
请输入一个数字:15该数字的二进制中1的个数为:4
请输入一个数字:256该数字的二进制中1的个数为:1
请输入一个数字:100该数字的二进制中1的个数为:3