1. 程式人生 > >二進位制數中1的個數

二進位制數中1的個數

題目

輸入一個整數,輸出該數二進位制數1的個數

import java.util.Scanner;

public class Main {		
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		/*
		 * 法1:1移位比較
		 */
		int count = 0;
		for (int i = 0; i < 32; i++) {
			if((n&(1<<i))==(1<<i)){
				count++;
			}
		}
		System.out.println(count);
		/*
		 * 法2:原數值移位比較
		 */
		count = 0;
		for (int i = 0; i < 32; i++) {
			if(((n>>>i)&1)==1){
				count++;
			}
		}
		System.out.println(count);
		/*
		 * 法3:原數值逐步消1
		 */
		count = 0;
		while(n!=0){
			n = (n-1)&n;
			count++;
		}
		System.out.println(count);
	}

}