Link Search Menu Expand Document
El Libro De Python (24.95 €) 39.95 €

Convertir binario a decimal

Veamos como convertir un número de representación binaria de decimal. Veamos antes un ejemplo de dicha conversión:

  • 🤖 El número 11011 en binario.
  • 💯 Es el número 27 en decimal.

Esta conversión se realiza sumando potencias de dos. En este caso 2^4 + 2^3 + 2^1 + 2^0. La potencia 2^2 nos la saltamos porque hay un 0 en esa posición.

Si lo piensas, en muy similar a la representación decimal, con la diferencia de que la base es 2 en vez de 10. Es decir, el número 27 es en realidad 2*10^1 + 7*10^0, o lo que es lo mismo, 27.

Podemos crear nuestra función de la siguiente manera. Simplemente vamos sumando 2 elevado a la potencia que toque usando el digito que es 0 o 1.

def binario_a_decimal(binario):
    decimal = 0
    potencia = 0
    for digito in reversed(binario):
        if digito not in {'0', '1'}:
            raise ValueError("Error")
        decimal += int(digito) * (2 ** potencia)
        potencia += 1

    return decimal

Y podemos usar la función de la siguiente manera.

binario = "11011"
decimal = binario_a_decimal(binario)
print(f"{binario} -> {decimal}")
# 11011 -> 27

✏️ Ejercicios:

  • Escribe una función decimal_a_binario que realice la conversión inversa, de decimal a binario.