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
.
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.
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
.
Al ejecutarlo y probarlo con mi conversor de números online, el resultado es correcto. Estamos convirtiendo de decimal a binario usando Python:
Igualmente puedes leer más sobre Python en mi blog.
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…
Esta web usa cookies.