Pythonでバイナリリテラルをどのように表現していますか?



Answers

>>> print int('01010101111',2)
687
>>> print int('11111111',2)
255

別の方法。

Question

Pythonリテラルで整数を二進数として表現するにはどうすればよいですか?

私は簡単に16進数の答えを見つけることができました:

>>> 0x12AF
4783
>>> 0x100
256

および8進数:

>>> 01267
695
>>> 0100
64

Pythonでバイナリを表現するためにリテラルをどのように使用しますか?

回答の要約

  • Python 2.5およびそれ以前: int('01010101111',2)を使用してバイナリを表現できますが、リテラルでは表現できません。
  • Python 2.5以前:バイナリリテラルを表現する方法はありません
  • Python 2.6 beta: 0b1100111または0B1100111ようにすることができます。
  • Python 2.6 beta:8進数を表す0o27または0O27 (2番目の文字は文字O)を許可します。
  • Python 3.0 beta:2.6と同じですが、古い8進数の8進数の構文を許可しません。



ここの最初の0は、基数が8(10ではない)であることを示しています。これはかなり見やすいものです。

>>> int('010101', 0)
4161

0で始まらない場合、pythonはその数を基数10とみなします。

>>> int('10101', 0)
10101



私はこれがおそらくbin()がhex()とoct()を使うPython 3.0での変更のためのものだと確信しています。

編集:lbrandyの答えはすべての場合に正しいです。




Related