domingo, 2 de septiembre de 2012

Conversión de sistemas numéricos

Los sistemas numéricos Hexadecimal, Binario, Octal y Decimal, pueden convertirse de uno a otro de manera simple. Si no conoces estos sistemas, puedes ir al tema anterior en este mismo blog donde explico como funciona cada uno.

Una de las maneras mas simples es pasar cualquier sistema a binario y posteriormente este a cualquier otro.
A continuación haré un ejemplo en cada caso.


- De cualquier sistema a Decimal.

Probaremos primero con un termino fácil el cual ya mostré anteriormente el 4 (0100), este sistema de conversión se utiliza para números mas grandes, ya que toma mucho tiempo tener que llenar las casillas una por una.

Ej:        (0100)2 --->(4)10


Primero se separa el numero binario por casillas de la siguiente manera

 0 + 1 + 0 + 0


Luego, ya que su base es 2 (la cantidad de símbolos que utiliza el sistema) se multiplica cada casilla por su base y dependiendo de su casilla, este numero se elevará al numero de la casilla en la que se encuentra, leyendo de derecha a izquierda. En este caso seria así (^ = elevado)

0 x 2^3 + 1 x 2^2 + 0 x 2^1 + 0 x 2^0
0 + 4 + 0 + 0 = 4


Pare hacerlo mas rápido se escriben solo aquellos casilleros con 1, ya que cualquier multiplicación con 0
da 0.

Probemos ahora con un numero mas grande.

Ej:       (00110010)--->(    )10

0 + 0 + 1 + 1 + 0 + 0 + 1 + 0
0 + 0 + 1x 2^5 + 1 x 2^4 + 0 + 0 + 1 x 2^1 + 0
32 + 16 + 2 = 50

           (00110010)--->( 50 )10


Podemos hacer lo mismo con el sistema Octal o Hexadecimal, solo hay que cambiar la base por la que se multiplica. Ej.

 -De Octal a Cecimal

(10)8 --->(   )10

1 + 0
1 x 8^1 + 0
8 + 0 = 8
(10)8 --->(8)10         *Recordemos q en el sistema octal despues del numero 7 se pasa al 10, por esta                
                                      razón en el decimal queda en el 8



 -De Hexadecimal a Decimal

(34)16 ---->(  )10

3 + 4
3 x 16^1 + 3 x 16^0
48 + 3 = 51
(34)16 ---->(51)10


- De Decimal a cualquier otro sistema

En esta ocasión no es necesario expandir el numero, lo tomaremos tal cual se encuentra y lo dividiremos
Usare los mismos ejemplos anteriores para comprobar los números

- De binarios a decimales

(4)10 ----> (  )2

4/2=2  Resto=0


Como pueden ver coloque el resto de la división, esto es importante, ya que el resto es el que nos dará el resultado, sigamos dividiendo con nuestro resultado anterior, osea el 2.

2/2=1  Resto=0


Necesitamos seguir dividiendo hasta que llegar a 0, ya que de ahí en adelante nuestra división seguirá dando 0 tanto en el resultado como en el resto.

1/2=0 Resto=1


Listo, si vemos el problema completo solo necesitamos leer los restos desde abajo hacia arriba.


(4)10 ----> (  )2

4/2=2  Resto=0
2/2=1  Resto=0
1/2=0  Resto=1

Por lo tanto nuestro numero binario es 100, anteriormente vimos que este era 0100, pero es exactamente lo mismo. Al igual que en cualquier otro sistema, los 0 a la izquierda no cuentan, solo se coloco 0100 para darle un orden a los números binarios el que sera mas útil más adelante.

Sigamos con los demás ejemplos

(50)10 ---> (  )2

50/2=25 Resto=0
25/2=12 Resto=1
12/2=6   Resto=0
6/2=3     Resto=0
3/2=1     Resto=1
1/2=0     Resto=1

(50)10 ---> (110010)2    o como en el cambio anterior  (50)10 ---> (00110010)2

-De Decimal a Octal

(8)10 ---> ( )8

8/8=1  Resto=0
1/8=0  Resto=1

(8)10 ---> (10)8

-De Decimal a Hexadecimal


(51)10 --->(  )16

51/16=3 Resto=4
3/16=0   Resto=3

(51)10 --->(34)16


Existe una manera de pasar de Binario a Octal de manera rápida. Para eso ocuparemos la siguiente tabla

Binarios    Octales
0000            0
0001            1
0010            2
0011            3
0100            4
0101            5
0110            6
0111            7

Como pueden ver, los umeros binarios no pasan de los 3 dígitos (recuerden que los 0 a la izquierda no valen nada) Por lo tanto, cada vez que veamos un numero binario los dividiremos en grupos de 3 numeros y asi obtendremos el octal que deseamos, por ejemplo:

(00110010)2 --->(  )8

Separemos el binario en grupos de 3 a ver como queda. (De derecha a izquierda)

00.110.010

Ahora con la tabla anterior, podemos ver que el grupo de mas a la derecha es igual a 2, el del centro es igual a 6 y el de más a la izquierda es igual a 0, por lo tanto nuestro numero final debería ser 062 o 62, comprobemoslo con lo aprendido anteriormente, pasándolo a decimal y posteriormente de decimal a octal.
Como ya sabemos, 00110010 en decimal es 50, asi que lo haremos directamente a octal.

(00110010)2 --->(50)10

(50)10 --->(  )8

50/8=6 Resto=2
6/8=0   Resto=6

(50)10 --->(62)8


Se puede hacer lo mismo con el Hexadecimal


Binarios    Hexadecimal
0000            0
0001            1
0010            2
0011            3
0100            4
0101            5
0110            6
0111            7
1000            8
1001            9
1010            A
1011            B
1100            C
1101            D
1110            E
1111            F

Como pueden ver, aquí se ocupan 4 dígitos, asi que separaremos el numero Binario en grupos de 4, volveremos a utilizar el mismo numero para hacerlo mas rápido.

(00110010)2 ---> (  )16

0011.0010

Como podemos ver, el termino de la derecha es equivalente a 2 y el de la izquierda a 3, por lo tanto nuestro numero debería ser el 32, comprobemoslo pasándolo de decimal al hexadecimal, recuerden que este numero lo trabajamos anteriormente, así que ya esta mas comprobado que en decimal es 50.

(50)10 ---> (  )16

50/16=3 Resto=2
3/16=0   Resto=3

(50)10 ---> (32)16


Bueno, esos son los sistemas de conversión numérica, espero que les sean útiles.




No hay comentarios:

Publicar un comentario