¿Cómo se expresan los literales binarios en Python?

¿Cómo se expresa un número entero como número binario con literales de Python?

Pude encontrar fácilmente la respuesta para hexadecimal:

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

y octal:

>>> 01267
695
>>> 0100
64

¿Cómo se usan los literales para expresar binario en Python?


Resumen de Respuestas

  • Python 2.5 y anteriores: se puede expresar binario usando int('01010101111',2) pero no con un literal.
  • Python 2.5 y anteriores: no hay forma de expresar literales binarios.
  • Python 2.6 beta: Se puede hacer así: 0b1100111 o 0B1100111.
  • Python 2.6 beta: también permitirá 0o27 o 0O27 (el segundo carácter es la letra O) para representar un octal.
  • Python 3.0 beta: Igual que 2.6, pero ya no permitirá la antigua sintaxis 027 para los octales.
>>> print int('01010101111',2)
687
>>> print int('11111111',2)
255

De otra manera.

Comentarios (1)

Hasta donde yo sé, Python, hasta la versión 2.5, sólo soporta literales hexadecimales y octales. He encontrado algunas discusiones sobre la adición de binario a las versiones futuras, pero nada definitivo.

Comentarios (0)

Estoy bastante seguro de que esta es una de las cosas debido al cambio en Python 3.0 con tal vez bin() para ir con hex() y oct().

EDITAR: lbrandy's respuesta es correcta en todos los casos.

Comentarios (0)