Pythonで2進数変換と文字列の扱い
Pythonで2進数から10進数に変換したりその逆を書きたかったので調べました。リストの10進数を2進数にしたり、そのリストに入った2進数を10進数に戻したりするときに必要だったのでメモとして残します。
組み込み関数を使うと
>>> print int('1010',2) 10
>>> print format (10,'b') 1010
このように変換することができる。
文字列とリストの変換については
# 文字列の場合 orig = "hello" li = list(orig) # 文字列 => リスト text = "".join(li) # リスト => 文字列 print li # ['h', 'e', 'l', 'l', 'o'] print text # hello # 数値の配列の場合 nums = [1,2,3,4,5] text = "".join(map(str, nums)) # リスト => 文字列 li = list(map(int, text)) # 文字列 => リスト print li # [1, 2, 3, 4, 5] print text # 12345
このようになる。
また、2進数に変換するときに桁数を揃えたい場合は書式指定を使う。
"{0:0>4}".format(binary)
4ビットで揃えたい場合などに使える。