Pasar números de binario a decimal

Para convertir un número de binario a decimal puedes utilizar el algoritmo de Horner y expresar tu número como una suma de potencias de 2, como te cuento en esta lección.

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:

  1. 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
  1. 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³.

  2. 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⁰.

  3. 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.

Lista de reproducción
  1. 1
    Pasar números de decimal a binario
    5 minutos
  2. 2
    Pasar números de binario a decimal
    6 minutos
  3. 3
    El operador binario NOT
    5 minutos
  4. 4
    El operador binario AND
    5 minutos
  5. 5
    El operador binario OR
    5 minutos
  6. 6
    El operador binario XOR
    6 minutos