python

Python: convertir decimal a binario

Anteriormente en mi blog te mostré cómo convertir un número binario a decimal usando Python, ahora te mostraré lo contario: cómo convertir un número decimal a binario.

Es decir, resolver un ejercicio de programación en Python para realizar una función que convierte de decimal (base 10) a binario (base 2) usando código definido por nosotros, y no funciones del propio lenguaje.

De este modo podrás ver cómo es el algoritmo para convertir de base 10 a base 2 en Python. Por ejemplo, convertir el número 19 a 10011.

Explicación del algoritmo

Vamos a realizar la conversión tal como la haríamos a mano, en una hoja de papel con un lápiz. Básicamente es dividir el número decimal entre 2 e ir sacando el residuo, que siempre será 1 o 0.

Ese residuo lo vamos a ir agregando o concatenando al inicio de una cadena (que va a tener el resultado) y repetiremos este proceso mientras el decimal sea mayor a 0.

Recuerda que en algún momento, el decimal llegará a ser 0, pues lo vamos a ir dividiendo entre 2.

Aquí está un ejemplo de cómo trabaja el algoritmo:

Ingresa un número decimal: 20
Decimal es 20
Lo divido entre 2, el residuo es 0
Ahora decimal es 10
Y binario es 0
Decimal es 10
Lo divido entre 2, el residuo es 0
Ahora decimal es 5
Y binario es 00
Decimal es 5
Lo divido entre 2, el residuo es 1
Ahora decimal es 2
Y binario es 100
Decimal es 2
Lo divido entre 2, el residuo es 0
Ahora decimal es 1
Y binario es 0100
Decimal es 1
Lo divido entre 2, el residuo es 1
Ahora decimal es 0
Y binario es 10100
El número 20 es 10100 en binario

Obviamente si es otro número mayor, el proceso va a ser más largo.

Código fuente

Una vez que he explicado el algoritmo, veamos el código fuente en lenguaje Python:

"""
    https://parzibyte.me/blog
"""


def decimal_a_binario(decimal):
    if decimal <= 0:
        return "0"
    # Aquí almacenamos el resultado
    binario = ""
    # Mientras se pueda dividir...
    while decimal > 0:
        # Saber si es 1 o 0
        residuo = int(decimal % 2)
        # E ir dividiendo el decimal
        decimal = int(decimal / 2)
        # Ir agregando el número (1 o 0) a la izquierda del resultado
        binario = str(residuo) + binario
    return binario


decimal = int(input("Ingresa un número decimal: "))
binario = decimal_a_binario(decimal)
print(f"El número {decimal} es {binario} en binario")

El ciclo while del que hablaba está en la línea 12. También es importante notar que el número binario (0 o 1) se va agregando al inicio de la cadena en la línea 18.

Por cierto, recuerda que necesitamos convertir los resultados de las divisiones a enteros, por ello el uso de int. También estamos convirtiendo a cadena en la línea 18 con str.

Poniendo todo junto

Al ejecutarlo y probarlo con mi conversor de números online, el resultado es correcto. Estamos convirtiendo de decimal a binario usando Python:

Convertir decimal a binario en Python

Igualmente puedes leer más sobre Python en mi blog.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

3 días hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

3 días hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

3 días hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

3 días hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

3 días hace

Solución: Apache – Server unable to read htaccess file

Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…

4 días hace

Esta web usa cookies.