Para convertir un número de sistema binario (expresado con los dígitos 01) a sistema decimal (expresado con los dígitos 0123456789), podemos utilizar el siguiente algoritmo si no tenemos una calculadora a mano.
Para convertir a decimal usaremos el algoritmo de Horner, que en este caso nos permite convertir entre base 2 y base 10. Sigue los siguientes pasos:
- Tendrás que asignar un peso a cada uno de los dígitos que forman tu número. El peso es un número que empieza a contar en 0 con el dígito que esté más a la derecha del número (la cifra menos significativa), y lo que haces es ponerle uno más al que está a su izquierda. Con el tiempo, aprenderás a hacer esto mentalmente, pero por ahora vamos a apuntar ese peso junto al número:
9 8 7 6 5 4 3 2 1 0
1 1 0 1 0 1 0 1 1 0 → 1 1 0 1 0 1 0 1 1 0
Para cada una de las cifras en binario de mi número (cada uno de los ceros y unos), multiplico su cifra por 2 elevado al peso de esa cifra. Es decir, si la cifra con el peso 5 es un 1, haces 1·2⁵, si la cifra con el peso 3 es un 0, haces 0·1³.
Sumas todos los productos que has obtenido en el paso 2, fabricando un polinomio que tendrá una forma parecida a esta:
1x2⁴ + 0x2³ + 0x2² + 1x2¹ + 1x2⁰.El resultado de esa suma es tu número en decimal.
Algunas optimizaciones:
Multiplicar un número por 0 da 0. Así que cualquier monomio que multipliques por 0 lo puedes tachar. Y como multiplicar un número por 1 da el mismo número, al final sólo tienes que sumar todas las potencias de 2 a la
n, para aquellos pesos que estén en las cifras que sean 1.Si te aprendes la tabla de las potencias de 2, posiblemente las potencias las saques antes:
1 2 4 8 16 32 64 128 256 512 1024 2048. Si jugaste al 2048 alguna vez, posiblemente ya lo sepas.
Ejemplo
Vamos a convertir el número 1101010110 a decimal. Lo pongo con el peso de cada número:
9 8 7 6 5 4 3 2 1 0
1 1 0 1 0 1 0 1 1 0
Fabrico mi polinomio. El polinomio completo sería este:
1x2^9 + 1x2^8 + 0x2^7 + 1x2^6 + 0x2^5 + 1x2^4 + 0x2^3 + 1x2^2 + 1x2^1 + 0x2^0
Si hiciésemos optimizaciones quitando cualquier número que multipliquemos por 0, nos queda únicamente lo siguiente:
1x2^9 + 1x2^8 + 1x2^6 + 1x2^4 + 1x2^2 + 1x2^1
Pero multiplicar por 1 también es innecesario, así que al final la suma queda como:
2^9 + 2^8 + 2^6 + 2^4 + 2^2 + 2^1
Resolvemos finalmente:
2^9 + 2^8 + 2^6 + 2^4 + 2^2 + 2^1 =
= 512 + 256 + 64 + 16 + 4 + 2 =
= 854
Así que 1101010110 es el 854 en decimal.