二进制中1的个数

一、请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。
 例:9的二进制表示为100,有2位是1。

import java.util.Scanner;
public class 题3_二进制中1的个数 {
	static int N;
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		N = sc.nextInt();
		System.out.println("转换为二进制为:" + Integer.toString(N, 2));
		f1();// 方法1
		f2();// 方法2
		f3();// 方法3
	}

	private static void f1() {
		int count = 0;
		// 比对每一位
		for (int i = 0; i < 32; i++) {
			if ((N & (1 << i)) == (1 << i)) {
				count++;
			}
		}
		System.out.println(count);
	}

	private static void f2() {
		int count = 0;
		for (int i = 0; i < 32; i++) {
			if (((N >>> i) & 1) == 1)
				count++;
		}
		System.out.println(count);
	}

	private static void f3() {
		int count = 0;
		while (N != 0) {
			N = ((N - 1) & N);
			count++;
		}
		System.out.println(count);
	}
}


 

发布了74 篇原创文章 · 获赞 32 · 访问量 9993

猜你喜欢

转载自blog.csdn.net/qq_41629684/article/details/104171498