Menu
CoddyTech

Number of 1 Bits

やさしいビット演算python iconjava iconcpp iconc iconjs icon+10

0以上の整数 n が与えられます。n を2進数で表し、その桁のうち1であるものの個数を返してください。この個数は、セットビット数、ポピュレーションカウント、またはハミング重みとも呼ばれます。たとえば、6は2進数で 110 なので、1のビットが2つあります。

関数

hammingWeight(n: integer) → integer
ninteger
符号付き32ビット整数に収まる非負の整数
戻り値integer
nの2進表記に含まれる1の桁数

制約

  • 0 ≤ n ≤ 231-1

例

入力
n = 11
出力
3
説明
11 は2進数で 1011 です。これは 8 + 2 + 1 です。4桁の2進数のうち3桁が1なので、答えは3です。
challenge icon

発展問題

この関数が何百万回も実行される場合、256個の事前計算されたカウントを格納したテーブルを4回参照して、32ビット数のビット数を数えるにはどうすればよいでしょうか?

コードをリセット
def hammingWeight(n):
    # ここにコードを書いてください

テスト #1

テスト #2

テスト #3

引数

n = 11

期待される出力

3