Skip to main content

Binario a Decimal


Los sistemas de numeración binario y decimal son sistemas de numeración posicionales, es decir con solo unos cuantos símbolos puede representarse cualquier número, el símbolo cambia de valor según la posición en la que se encuentre. El sistema decimal está compuesto de diez símbolos 0,1,2,3,4,5,6,7,8 y 9 en tanto el sistema binario solo usa dos símbolos 0 y 1. El sistema decimal es un sistema de base 10, lo explicamos con un ejemplo:

 

123=3\cdot 10^{0}+2\cdot 10^{1}+1\cdot 10^{3}=3+20+100

 

Las posiciones empiezan a contarse de derecha a izquierda. Así la primera posición en este número está ocupada por el número 3 la segunda por el 2 y la tercera por el 1. Como se muestra arriba la primera posición se multiplica por 10^{0}, la segunda posición se multiplica por 10^{1} y así sucesivamente, la posición n se multiplica por 10^{n-1}, al final la sucesión de símbolos representa a la suma de las multiplicaciones antes mencionadas. Sucede algo parecido con el sistema binario, solo que la base cambia, en el sistema binario usamos el 2 como base:

 

1111011_{2}=1\cdot 2^{0}+1\cdot 2^{1}+0\cdot 2^{2}+1\cdot 2^{3}+1\cdot 2^{4}+1\cdot 2^{5}+1\cdot 2^{6}

 

Como puede apreciarse es exactamente lo mismo que el sistema decimal solo que tiene como base al número 2. Todos los sistemas posicionales funcionan de esta manera, dependiendo de la base que se escoja varía el número de símbolos necesarios para el sistema.

 

Binario a Decimal

Pasar del sistema binario al decimal es muy sencillo, tomemos como ejemplo el número anterior:

 

1111011_{2}=1\cdot 2^{0}+1\cdot 2^{1}+0\cdot 2^{2}+1\cdot 2^{3}+1\cdot 2^{4}+1\cdot 2^{5}+1\cdot 2^{6}

 

Solo basta hacer las operaciones en el lado derecho y obtendremos el número decimal buscado:

 

1\cdot 2^{0}=1\cdot 1=1

1\cdot 2^{1}=1\cdot 2=2

0\cdot 2^{2}=0\cdot 4=0

1\cdot 2^{3}=1\cdot 8=8

1\cdot 2^{4}=1\cdot 16=16

1\cdot 2^{5}=1\cdot 32=32

1\cdot 2^{6}=1\cdot 64=64

1+2+0+8+16+32+64=123

 

1111011_{2}=123_{10}

 

Python Script

bin = raw_input("Binario a decimal: ")
dec = int(str(bin),2)
print "%s en decimal es %d" % (bin,dec)