题解:二进制中1的个数

在这里插入图片描述题目分析

  1. 先将输入的十进制整数转换成二进制整数
  2. 通过位运算中的与&运算进行运算,得出1的个数

代码实现

package oj;

import java.util.Scanner;

public class OneNumber {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		//输入十进制目标数据
		int N = sc.nextInt();
		//调用API:将十进制转化为二进制
		System.out.println(Integer.toString(N, 2));
		int count = 0;
		//整型最多4个字节,32位,则可遍历32位
		for(int i = 0;i < 32;i++) {
			//方法一:将1每次左移一位,与目标数据进行与与运算,并记出现次数
			if((N&(1<<i)) == (1<<i)) {
				count++;
			}
		}
		//方法二:将目标数据每次右移一位与1做与运算,记出现次数
		//方法三:将目标数据中的1全部消除,每次消除一个,得出消除的次数
		
		//输出1的个数
		System.out.println(count);
	}
}

你可能感兴趣的:(算法)