整数をバイナリに変換するために、次のコードを使用しました。
>>> bin(6)
'0b110'
「0b」を消去するときは、これを使用します:
>>> bin(6)[2:]
'110'
の代わりに6
として表示したい場合はどうすればよいですか?00000110
110
>>> '{0:08b}'.format(6)
'00000110'
フォーマット文字列の部分を説明するだけです:
{}
変数を文字列に配置します0
引数位置 0 の変数を取る:
この変数の書式設定オプションを追加します (それ以外の場合は decimal を表します6
)08
数値を 8 桁にフォーマットし、左側をゼロで埋めますb
数値をバイナリ表現に変換しますPython 3.6 以降のバージョンを使用している場合は、f-strings も使用できます。
>>> f'{6:08b}'
'00000110'
ちょうど別のアイデア:
>>> bin(6)[2:].zfill(8)
'00000110'
文字列補間による短い方法( Python 3.6+ ):
>>> f'{6:08b}'
'00000110'
ちょっといじる方法…
>>> bin8 = lambda x : ''.join(reversed( [str((x >> i) & 1) for i in range(8)] ) )
>>> bin8(6)
'00000110'
>>> bin8(-3)
'11111101'
フォーマット機能を使うだけ
format(6, "08b")
一般的な形式は
format(<the_integer>, "<0><width_of_string><format_specifier>")
eumiroの答えはより良いですが、私はこれをバラエティーのために投稿しています:
>>> "%08d" % int(bin(6)[2:])
00000110
..または、常に8桁にする必要があるかどうかわからない場合は、パラメーターとして渡すことができます:
>>> '%0*d' % (8, int(bin(6)[2:]))
'00000110'
常に一定ではない変数から表すために使用される桁数を解析したいと仮定すると、numpy.binary を使用するのが良い方法です。
パワーセットにバイナリを適用するときに役立つ可能性があります
import numpy as np
np.binary_repr(6, width=8)