Python: transformar binario a texto

Hoy vamos a ver cómo transformar un conjunto de texto binario a texto normal, en español, ASCII o como le llames. En otras palabras vamos a decodificar texto binario en Python.

Es decir, transformar algo como “01101000,01101111,01101100,01100001” en “hola”. Para esto vamos a usar funciones para transformar números de base 2 a base 10, split y chr.

Entendiendo el algoritmo

Vamos a tener una cadena como la siguiente:

01101000,01101111,01101100,01100001

Lo que haremos será separarla por comas con split. Luego, vamos a recorrer cada valor del arreglo generado y convertir el número binario a número decimal en base 10.

Cuando ya tengamos el número en decimal (que representa el valor ASCII de la letra) lo convertimos a la letra. Por ejemplo, el 64 se convierte en @.

Binario a ASCII en Python

Así que la función queda así:

def decodificar(mensaje):
    numeros = mensaje.split(",")
    decodificado = ""
    for numero_binario in numeros:
        numero_decimal = int(numero_binario, 2)
        letra = chr(numero_decimal)
        decodificado += letra
    return decodificado

Como ves estamos  usando la función int para convertir el binario a decimal (el segundo argumento es la base desde donde transformamos). Luego usamos chr para convertir el número a letra según su valor ASCII.

La función se puede probar enviándole una cadena con el texto en binario:

def decodificar(mensaje):
    numeros = mensaje.split(",")
    decodificado = ""
    for numero_binario in numeros:
        numero_decimal = int(numero_binario, 2)
        letra = chr(numero_decimal)
        decodificado += letra
    return decodificado


codificado = "01101000,01101111,01101100,01100001"
decodificado = decodificar(codificado)
print("Decodificado es: ")
print(decodificado)

También puedes explorar más tutoriales de 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.

Dejar un comentario

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