は私が本の中で、次のコードを見つけました:Pythonのビット単位の操作
def count_bits(x):
num_bits = 0
while x:
num_bits += x&1
x >>= 1
return num_bits
print(count_bits(12))
私はこの行を理解していない(num_bits + = X & 1)
のは、私が入力12(1100ましょう)、最初の文字( "1")がカウントされます。しかし、右シフトがあり、1100は0110になります。カウンタが2番目の文字に移動すると、1は2回カウントされませんか?
、それは「Pythonでプログラミングインタビューの要素」23ページ:-)のですか? –
@AzizAltoはい!私は今、本を読んでいます。作者の名前の1つは、あなたのハンドルのようなAzizです。それは偶然だろうか、それとも...? – YingSquared
まったく偶然!それはちょうど私が昨日、幸運の正確な例を通して本をブラウズしていたことが起こります! : - ] –