(LC)191。ビット数1

191.ビット1の数

関数を記述します。入力は符号なし整数(バイナリ文字列の形式)であり、桁が「1」(ハミング重みとも呼ばれます)であるバイナリ式の桁数を返します。

促す:

一部の言語(Javaなど)では、符号なし整数型がないことに注意してください。この場合、入力と出力の両方が符号付き整数型として指定され、整数が符号付きか符号なしかに関係なく内部バイナリ表現が同じであるため、実装に影響を与えることはありません。
Javaでは、コンパイラは2の補数表記を使用して符号付き整数を表します。したがって、上記の例3では、入力は符号付き整数-3を表します。

例1:

入力:00000000000000000000000000001011
出力:3
説明:入力バイナリー文字列00000000000000000000000000001011では、合計3ビットが「1」です。
例2:

入力:00000000000000000000000010000000
出力:1
説明:入力バイナリー文字列00000000000000000000000010000000では、合計1ビットが「1」です。
例3:

入力:11111111111111111111111111111111101
出力:31
説明:入力バイナリストリング11111111111111111111111111111101では、合計31ビットが「1」です。

促す:

入力は、長さ32のバイナリ文字列である必要があります。

 public int hammingWeight(int n) {
    
    
        int count=0;
        while(n!=0) {
    
    
            n &= n-1;
            count++;
        }
        return count;
    }
```
 

おすすめ

転載: blog.csdn.net/weixin_45567738/article/details/115076437