2009-06-28 18 views

Respuesta

56

Este tipo de cosas?

>>> ord('a') 
97 
>>> hex(ord('a')) 
'0x61' 
>>> bin(ord('a')) 
'0b1100001' 
+1

Siendo estricto, esta es la representación binaria de un número, pero no necesariamente los bits subyacentes en la memoria. – bgusach

24

En Python 2.6+:

print bin(123) 

Resultados en:

0b1111011 

en Python 2.x

>>> binary = lambda n: n>0 and [n&1]+binary(n>>1) or [] 
>>> binary(123) 
[1, 1, 0, 1, 1, 1, 1] 

Nota, ejemplo tomado de: " Mark Dufour "en http://mail.python.org/pipermail/python-list/2003-December/240914.html

+1

puede añadir más bin = lambda b:. '0b' + '' se unen a (map (str, binary (b))), por lo que imita 2.6+ completamente –

+0

lo que quiero es que el binario esté rellenado con 0 para acomodar un número binario de longitud fija. – VaidAbhishek

+1

'bin (-7)' devuelve '-0b111' pero su función devuelve' [] '. –

19

Desde Python 2.6 - con el string.format method:

"{0:b}".format(0x1234) 

, en particular, que le gustaría utilizar el relleno, de manera que los múltiples impresiones de diferentes números todavía se alinean:

"{0:16b}".format(0x1234) 

y tener margen izquierdo con 0 iniciales en lugar de espacios:

"{0:016b}".format(0x1234) 

Desde Python 3.6 - con f-strings:

Los mismos tres ejemplos, con F-strings, sería:

f"{0x1234:b}" 
f"{0x1234:16b}" 
f"{0x1234:016b}" 
1

poco fuera de tema, pero podría ser útil. Para una mejor impresión fácil de usar, utilizaría la función de impresión personalizada, definiría los caracteres de representación y el espaciado entre grupos para una mejor legibilidad. Aquí es una función de ejemplo, se toma una lista/matriz y la anchura grupo:

def bprint(A, grp): 
    for x in A: 
     brp = "{:08b}".format(x) 
     L=[] 
     for i,b in enumerate(brp): 
      if b=="1": 
       L.append("k") 
      else: 
       L.append("-") 
      if (i+1)%grp ==0 : 
       L.append(" ") 

     print "".join(L) 

#run 
A = [0,1,2,127,128,255] 
bprint (A,4) 

de salida:

---- ---- 
---- ---k 
---- --k- 
-kkk kkkk 
k--- ---- 
kkkk kkkk 
Cuestiones relacionadas