【java毎日1題】バイナリの1の個数

833 ワード

テーマ
一つの整数を入力して、この数のバイナリ表現の中の1の個数を出力します。負の数は補数で表します。
public class Test09 {
    public static void main(String[] args) {
        int i = NumberOf1(50);
        System.out.println(i);
    }

    public static int NumberOf1(int n) {
        //  0,    
        if (0 == n) return 0;

        if (n > 0) {
            //           
            String s = Integer.toBinaryString(n);

            //          
            char[] chars = s.toCharArray();
            //     
            int count = 0;
            //        49   ASCII 
            for (char ch : chars) {
                if (49 == ch) {
                    count++;
                }
            }

            return count;
        } else {
            //       int              1     。
            return Integer.bitCount(n);
        }
    }
}