参考:
8ビットの場合:
def count_1s_in_8bits(val): val = (val & 0x55) + ((val >> 1) & 0x55); val = (val & 0x33) + ((val >> 2) & 0x33); return (val & 0x0f) + ((val >> 4) & 0x0f); #確認のため別の方法を試す。 #数値を2進数文字列に変えて、数字1の個数を数える。 def sute(val): return bin(val).count('1') for i in range(2**8): print(i, hex(i), bin(i), count_1s_in_8bits(i), sute(i), bin(count_1s_in_8bits(i)), bin(sute(i)))