pilas - Conversión de entero a binario en python
decimal a binario con pilas (6)
.. o si no está seguro de que siempre debe tener 8 dígitos, puede pasarlo como un parámetro:
>>> ''%0*d'' % (8, int(bin(6)[2:]))
''00000110''
Para convertir un entero a un binario, he usado este código:
>>> bin(6)
''0b110''
y cuando borrar el ''0b'', uso esto:
>>> bin(6)[2:]
''110''
¿Qué puedo hacer si quiero mostrar 6
como 00000110
lugar de 110
?
La respuesta de eumiro es mejor, sin embargo, solo estoy publicando esto por variedad:
>>> "%08d" % int(bin(6)[2:])
00000110
Solo otra idea:
>>> bin(6)[2:].zfill(8)
''00000110''
Forma más corta a través de la interpolación de cadenas ( Python 3.6+ ):
>>> f''{6:08b}''
''00000110''
Solo usa la función de formateo
format(6, "08b")
La forma general es
format(<the_integer>, "<0><width_of_string><format_specifier>")
Un método un poco juguetón ...
>>> bin8 = lambda x : ''''.join(reversed( [str((x >> i) & 1) for i in range(8)] ) )
>>> bin8(6)
''00000110''
>>> bin8(-3)
''11111101''
>>> ''{0:08b}''.format(6)
''00000110''
Solo para explicar las partes de la cadena de formato:
-
{}
coloca una variable en una cadena -
0
toma la variable en la posición de argumento 0 -
:
agrega opciones de formato para esta variable (de lo contrario, representaría el decimal6
) -
08
formatea el número a ocho dígitos cero rellenos a la izquierda -
b
convierte el número a su representación binaria