LoginSignup
0
1

More than 3 years have passed since last update.

pythonでbit全探索する際のスニペット

Posted at

pythonでbit全探索したい

自分用のメモ。気が向いたらちゃんと書き直す。

ある10進数の数字xをn桁の2進数にしたいことがある。(主にbit全探索の時に)
その時にformatとかを使ってもよいが、書き方が覚えられなかったので、
よく使う方法をメモ。

忘れた時用のコードの解説。
bin(x >> i)でxを2進数にしたものを一桁ずつずらしていく。
そのずらした数字の一番下の桁の数字だけが欲しいので2で割った余りを計算する。
2で割った余りを計算するためにはbitシフトしたものをintに戻す必要があるので
int(bin,2)として2進数のものを10進数に戻している。
x_array_binに代入する順番を入れ替えれば、ちゃんと[0,0,0,1,1]と出来るが、
bit全探索ではあまり関係がないのでこのままにしてある。


x = 3
n = 5
x_array_bin = [0 for _ in range(n)]
for i in range(n):
        x_array_bin[i] = int(bin(x >> i),2)%2

print(x_array_bin)

#[1, 1, 0, 0, 0]


0
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1