私は、32ビットの2進数に、ある整数(32ビットintが保持できる値によって制限される)を変換するプログラムを作ろうとしています。たとえば、1は(000..31x)1を返します。私は文書やすべてを検索してきましたが、具体的な方法を見つけることができませんでした。私はそれがビットの数が数字のサイズによるが、Stringで動作している。誰かがこれについてもっと効率的な方法を伝えることができますか?整数を32ビットバイナリのPythonに変換
0
A
答えて
0
'{:032b}'.format(n)
ここで、n
は整数です。バイナリ表現が32桁よりも大きい場合には、必要に応じて拡大する:
>>> '{:032b}'.format(100)
'00000000000000000000000001100100'
>>> '{:032b}'.format(8589934591)
'111111111111111111111111111111111'
>>> '{:032b}'.format(8589934591 + 1)
'1000000000000000000000000000000000' # N.B. this is 33 digits long
の
+0
しかし、これは文字列を返します、左シフトと右シフトのような機能も追加したいのでバイナリが必要です。 –
+1
@PoojaGuptaあなたは 'int'を探しています –
可能な重複([Pythonのバイナリに変換し、先行ゼロを保つ] http://stackoverflow.com/questions/16926130/python-convert二進数で先頭にゼロをつける) –
いくつかのコードを表示できます –
2の補数表現をお探しですか? –