Python – How to express binary literals in Python


How do you express an integer as a binary number with Python literals?

I was easily able to find the answer for hex:

>>> 0x12AF
>>> 0x100

and octal:

>>> 01267
>>> 0100

How do you use literals to express binary in Python?

Summary of Answers

  • Python 2.5 and earlier: can express binary using int('01010101111',2) but not with a literal.
  • Python 2.5 and earlier: there is no way to express binary literals.
  • Python 2.6 beta: You can do like so: 0b1100111 or 0B1100111.
  • Python 2.6 beta: will also allow 0o27 or 0O27 (second character is the letter O) to represent an octal.
  • Python 3.0 beta: Same as 2.6, but will no longer allow the older 027 syntax for octals.

Best Solution

For reference—future Python possibilities:
Starting with Python 2.6 you can express binary literals using the prefix 0b or 0B:

>>> 0b101111

You can also use the new bin function to get the binary representation of a number:

>>> bin(173)

Development version of the documentation: What's New in Python 2.6