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
11011en binario. - 💯 Es el número
27en 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_binarioque realice la conversión inversa, de decimal a binario.