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.