Saltar al contenido

Convierta a binario y mantenga los ceros a la izquierda en Python

Esta es el arreglo más válida que encomtrarás aportar, sin embargo estúdiala detenidamente y valora si se puede adaptar a tu proyecto.

Solución:

Utilizar el format() función:

>>> format(14, '#010b')
'0b00001110'

los format() La función simplemente formatea la entrada siguiendo el minilenguaje de especificación de formato. los # hace que el formato incluya el 0b prefixy el 010 size formatea la salida para que quepa en 10 caracteres de ancho, con 0 relleno; 2 caracteres para el 0b prefixlos otros 8 para los dígitos binarios.

Esta es la opción más compacta y directa.

Si está poniendo el resultado en un tamaño más grande stringuse un formato string literal (3.6+) o uso str.format() y poner el segundo argumento para el format() función después de los dos puntos del marcador de posición :..:

>>> value = 14
>>> f'The produced output, in binary, is: value:#010b'
'The produced output, in binary, is: 0b00001110'
>>> 'The produced output, in binary, is: :#010b'.format(value)
'The produced output, in binary, is: 0b00001110'

Da la casualidad de que, incluso para dar formato a un único valor (por lo que sin poner el resultado en un mayor string), usando un formato string literal es más rápido que usar format():

>>> import timeit
>>> timeit.timeit("f_(v, '#010b')", "v = 14; f_ = format")  # use a local for performance
0.40298633499332936
>>> timeit.timeit("f'v:#010b'", "v = 14")
0.2850222919951193

Pero usaría eso solo si el rendimiento en un ciclo cerrado importa, como format(...) comunica mejor la intención.

Si no querías la 0b prefixsimplemente suelte el # y ajustar la longitud del campo:

>>> format(14, '08b')
'00001110'

>>> ':08b'.format(1)
'00000001'

Ver: Especificación de formato Mini-idioma


Nota para Python 2.6 o anterior, no puede omitir el identificador de argumento posicional antes :así que usa

>>> '0:08b'.format(1)
'00000001'      

estoy usando

bin(1)[2:].zfill(8)

imprimirá

'00000001'

Comentarios y valoraciones de la guía

Si entiendes que ha sido de utilidad nuestro post, sería de mucha ayuda si lo compartieras con otros entusiastas de la programación y nos ayudes a difundir este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *