1. ホーム
  2. パイソン

[解決済み】Pythonでバイナリリテラルを表現するには?

2022-03-24 11:57:45

質問

Pythonのリテラルで整数を2進数で表現するには?

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

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

と8進数です。

>>> 01267
695
>>> 0100
64

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


回答要旨

  • Python 2.5以前: バイナリの表現が可能です。 int('01010101111',2) が、リテラルでは不可。
  • Python 2.5 以前のバージョンでは まさか バイナリ・リテラルを表現するために
  • Python 2.6ベータ版。このようにできます。 0b1100111 または 0B1100111 .
  • Python 2.6 beta では、次のようなことも可能になる予定です。 0o27 または 0O27 (2文字目がO)で8進数を表します。
  • Python 3.0ベータ版。2.6 と同じですが、古いバージョンの 027 の構文で8進数を指定します。

解き方は?

参考までに 未来 Pythonの可能性。

Python 2.6 からは、バイナリリテラルを接頭辞の 0b または 0B :

>>> 0b101111
47

また、新しい ビン 関数を使用して、数値の2進数表現を得ることができます。

>>> bin(173)
'0b10101101'

開発版のドキュメントです。 Python 2.6での新機能