Si eres estudiante de Informática, electrónica o cualquier rama de ingeniería, una de las cosas que deberás saber es realizar conversiones de sistemas de numeración. En informática, los sistemas de numeración utilizados son deferentes al que tradicionalmente conocemos, como es nuestro sistema decimal. Es por esto que muy posiblemente, si nos dedicamos al campo de la tecnología tanto de informática, programación como otras similares, necesitaremos conocer los sistemas más utilizados y cómo saber realizar la conversión de un sistema a otro.
Índice de contenidos
Como realizar conversiones de sistemas de numeración
Es especialmente útil conocer el sistema de conversión de Decimal a Binario y viceversa, ya que es el sistema de numeración con el que trabajan directamente los componentes de un ordenador. Pero también es muy útil conocer el sistema hexadecimal, ya que es utilizado por ejemplo para representar los códigos de colores, claves y gran cantidad de códigos de nuestro equipo.
Sistemas de numeración
Un sistema de numeración consiste en la representación de un conjunto de símbolos y reglas que permiten construir los números que son válidos. Dicho de otra forma, consiste en utilizar una serie de símbolos acotados con los que será posible formar otros valores numéricos sin límite alguno.
Sin entrar demasiado en términos matemáticos de definiciones, los sistemas más utilizados por humanos y máquinas serán los siguientes:
Sistema decimal
Es un sistema de numeración posicional en el que las cantidades son representadas mediante la base aritmética del número diez.
Al ser la base el número diez, tendremos la capacidad de construir todas las cifras mediante diez números que son los que conocemos todos. 0, 1,2 3, 4, 5, 6, 7, 8 y 9. Estos números se utilizarán para representar la posición de las potencias de 10 en la formación de cualquier número.
Entonces, podríamos representar un número de la siguiente forma en este sistema de numeración:
Vemos que un número decimal es la suma de cada valor por la base 10 elevada a la posición-1 que ocupa cada término. Esto luego lo vamos a tener muy presente para las conversiones en los demás sistemas de numeración.
Sistema Binario
El sistema binario es un sistema de numeración en el que se utiliza la base aritmética 2. Este sistema es el utilizado por los ordenadores y sistemas digitales de forma interna para realizar absolutamente todos los procesos.
Este sistema de numeración solamente está representado por dos cifras, el 0 y el 1, es por esto que es de base 2 (dos cifras) Con ella se construirán todas las cadenas de valores.
Sistema Octal
Como con las explicaciones anteriores, ya nos podremos imaginar de que va esto del sistema octal. El sistema Octal es el sistema de numeración en el que se utiliza la base aritmética 8, es decir, tendremos 8 dígitos diferentes para representar todos los números. Estos serán: 0, 1, 2, 3, 4, 5, 6 y 7.
Sistema Hexadecimal
Siguiendo las definiciones anteriores, el sistema de numeración decimal es un sistema de numeración posicional que tiene con base el número 16. En este punto nos preguntaremos, ¿cómo vamos a conseguir 16 números diferentes, si por ejemplo el 10 es la combinación de dos números distintos?
Pues muy sencillo, nos los inventamos, no nosotros, sino los que inventaron el sistema en cuestión. Los números que tendremos aquí serán: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F. esto hace un total de 16 términos diferentes. Si te has fijado alguna vez el código numérico de un color tiene este tipo de numeración, y es por esto que verás cómo el blanco por ejemplo se representa como el valor FFFFFF. Ya veremos luego que significa esto.
Conversión entre sistema binario y sistema decimal
Por ser el más básico y fácil de entender, comenzaremos por realizar la conversión entre estos dos sistemas de numeración.
Convertir número de binario a decimal
Como vimos en el primer apartado, un numero decimal lo representamos como la suma de los valores multiplicados por la potencia de 10 a la posición-1 que ocupa. Si aplicamos esto a un número binario cualquiera, con su correspondiente base, tendremos lo siguiente:
1 | 0 | 0 | 1 | 1 |
0 |
1·25 | 1·24 | 1·23 | 1·22 | 1·21 |
1·20 |
Pero claro, si hiciéramos el procedimiento como en el sistema decimal, obtendríamos valores distintos de 0 y 1 que son los que solamente podemos representar en este sistema de numeración.
Pero precisamente esto va a ser muy útil para realizar la conversión al sistema decimal. Calculemos el resultado de cada valor en su casilla:
1 | 0 | 0 | 1 | 1 |
0 |
1·25=32 |
1·24=0 | 1·23=0 | 1·22=4 | 1·21=2 |
1·20=0 |
Pues si hacemos la suma de estos valores resultantes de cada casilla obtendremos el valor equivalente en decimal del valor binario.
El valor en decimal de 100110 es 38
Solamente hemos tenido que multiplicar el digito (0 o 1) por su base (2) elevada a la posición-1 que ocupa en la cifra. Sumamos los valores y tendremos el número en decimal.
Si no te has quedado convencido, vamos ahora a realizar el proceso contrario:
Convertir número de decimal a binario
Si antes hicimos una multiplicación de los números y una suma para determinar el valor en decimal, ahora lo que tendremos que hacer es dividir la cifra decimal entre la base del sistema al que lo queremos convertir, en este caso el 2.
Realizaremos este procedimiento hasta que ya no sea posible efectuar ninguna división más. Veamos el ejemplo de cómo se haría.
Número |
38 | 19 | 9 | 4 | 2 | 1 |
División |
÷2=19 |
÷2=9 | ÷2=4 | ÷2=2 | ÷2=1 |
– |
Resto | 0 | 1 | 1 | 0 | 0 |
1 |
Este es el resultado de hacer las sucesivas divisiones hasta llevar al mínimo. Ya te habrás podido dar cuenta cómo funciona esto. Si ahora cogemos los restos de cada división, e invertimos su posición obtendremos el valor en binario del número decimal. Es decir, empezado desde donde finalizamos la división hacia atrás:
Así tenemos el siguiente resultado: 100110
Como vemos, hemos conseguido volver a tener exactamente la misma cifra que al principio del apartado.
Conversión número decimal fraccionario a binario
Como bien sabemos, no solamente hay números decimales enteros, sino que también podremos encontrar números reales (fracciones). Y como sistema de numeración que es, debería de poderse convertir un número del sistema decimal al sistema binario. Vemos cómo hacerlo. Vamos a tomar de ejemplo el número 38,375
Lo que debemos hacer es separar cada una de las partes. La parte entera ya sabemos calcularla, por lo que iremos directamente a la parte decimal.
El procedimiento será el siguiente: debemos tomar la parte decimal y multiplicarla por la base del sistema, es decir, 2. El resultado de la multiplicación debemos de multiplicarlo nuevamente hasta conseguir una parte fraccionaria de 0. Si al efectuar la multiplicación aparece un número faccionario con parte entera, solamente tendremos que coger la fracción para la siguiente multiplicación. Veamos el ejemplo para entenderlo mejor.
Numero |
0,375 | 0,75 | 0,50 |
Multiplicación | *2=0,75 | *2=1,50 |
*2=1,00 |
Parte entera | 0 | 1 |
1 |
Como vemos, vamos cogiendo la parte decimal y volviendo a multiplicarla hasta llegar a 1,00 en donde el resultado siempre será 0.
El resultado de 38,375 en binario será entonces 100110,011
Pero ¿Qué pasa cuando no podemos llegar nunca a un resultado de 1,00 en el proceso? Veamos el ejemplo con 38,45
Numero |
0,45 | 0,90 | 0,80 | 0,60 | 0,20 | 0,40 | 0,80 |
Multiplicación | *2=0,90 | *2=1,80 | *2=1,60 | *2=1,20 | *2=0,40 | *2=0,80 | *2=1,60 |
Parte entera | 0 | 1 | 1 | 1 | 0 | 0 |
1 |
Como podemos ver, a partir de 0,80 el proceso se hace periódico, es decir, nunca llegaremos a terminar el procedimiento porque siempre nos aparecerá los números desde el 0,8 hasta el 0,4. Entonces nuestro resultado será una aproximación del número decimal, mientras más lejos vayamos, mayor exactitud obtendremos.
Entonces: 38,45=100110,011100110011001…
Veamos cómo hacer el proceso inverso
Conversión número binario fraccionario a decimal
Este proceso se llevará a cabo de la misma forma que el cambio de base normal, solo que a partir de la coma las potencias serán negativas. Cojamos solamente la parte entera del número binario anterior:
0 | 1 | 1 | 1 | 0 | 0 |
1 |
… |
0·2-1=0 | 1·2-2=0,25 | 1·2-3=0,125 | 1·2-4=0,0625 | 1·2-5=0 | 1·2-6=0 | 1·2-7=0,0078125 | … |
Si sumamos los resultados obtendremos:
0,25 + 0,125 + 0,0625 + 0,0078125 =0,4453
Si siguiéramos realizando operaciones nos acercaríamos cada vez más al valor exacto de 38,45
Conversión entre sistema octal y sistema binario
Ahora vamos a proceder a ver cómo realizar la conversión entre dos sistemas que no son el decimal, para ello cogeremos el sistema octal y el sistema binario y haremos el mismo procedimiento que en los apartados anteriores.
Convertir número de binario a octal
La conversión entre ambos sistemas de numeración es muy sencilla debido a que la base del sistema octal es la misma que en el sistema binario pero elevado a la potencia de 3, 23=8. Entonces, en base a esto, lo que vamos a hacer es agrupar los términos binarios en grupos de tres empezando desde la derecha hacia a izquierda y hacer directamente la conversión a un número decimal. Veamos el ejemplo con el número 100110:
1 | 0 | 0 | 1 | 1 | 0 |
100 | 110 | ||||
0·22=4 | 0·21=0 | 1·20=0 | 1·22=4 | 1·21=2 | 0·20=0 |
4 | 6 |
Agrupamos cada tres cifras y hacemos la conversión a decimal. El resultado final será que 100110=46
Pero, ¿y si no tenemos grupos perfectos de 3? Por ejemplo 1001101, tenemos dos grupos de 3 y uno de 1, veamos cómo proceder:
0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 |
001 | 100 | 110 | ||||||
0·22=0 | 0·21=0 | 1·20=1 | 0·22=0 | 0·21=0 | 1·20=1 | 1·22=4 | 1·21=0 | 1·20=1 |
1 | 1 | 5 |
Siguiendo el procedimiento, cogemos los grupos a partir de la derecha del término y cuando lleguemos al final rellenamos con tantos ceros como sean necesarios. En este caso, hemos necesitado dos para completar el último grupo. Entonces 1001101=115
Convertir número de octal a binario
Pues el procedimiento es tan simple como hacer lo contrario, es decir pasar de binario a decimal en grupos de 3. Veámoslo con el número 115
Valor | 1 | 1 | 5 | ||||||
División | ÷2=0 | 0 | 0 | ÷2=0 | 0 | 0 | ÷2=2 | ÷2=1 | – |
Resto | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 |
Grupo | 001 | 001 | 101 |
De esta forma vemos que 115 = 001001101 o que lo que es lo mismo 115=1001101
Conversión entre sistema octal y sistema decimal
Ahora vamos a ver cómo realizar el procedimiento de pasar del sistema de numeración octal al decimal y viceversa. Veremos que el procedimiento es exactamente el mismo que para el caso del sistema decimal y binario, solo que debemos de cambiar la base a 8 en lugar de 2.
Realizaremos los procedimientos directamente con términos con parte fraccionaria.
Convertir número de decimal a octal
Siguiendo el procedimiento del método decimal-binario vamos a llevarlo a cabo con el ejemplo de 238,32:
Parte entera. Dividimos por la base, que es 8:
Numero | 238 | 29 | 3 |
División | ÷8=29 | ÷8=3 | – |
Resto | 6 | 5 | 3 |
Parte decimal, multiplicamos por la base, que es 8:
Numero | 0,32 | 0,56 | 0,48 | 0,84 | 0,72 | … |
Multiplicación | *8=2,56 | *8=4,48 | *8=3,84 | *8=6,72 | *8=5,76 | … |
Parte entera | 2 | 4 | 3 | 6 | 5 | … |
El resultado obtenido es el siguiente: 238,32 = 356,24365…
Convertir número de octal a decimal
Pues bien, hagamos entonces el proceso contrario. Vamos a pasar el número octal 356,243 a decimal:
3 | 5 | 6 | , | 2 | 4 | 3 |
3·82=192 | 5·81=40 | 6·20=6 | 2·8-1=0,25 | 4·8-2=0,0625 | 3·8-3=0,005893 |
El resultado es: 192 + 40 + 6 , 0,25 + 0,0625 + 0,005893 = 238,318
Conversión entre sistema hexadecimal y sistema decimal
Finalizamos entonces con el proceso de conversión entre el sistema de numeración hexadecimal y el sistema decimal.
Convertir número de decimal a hexadecimal
Siguiendo el procedimiento del método decimal-binario y decimal-octal vamos a llevarlo a cabo con el ejemplo de 238,32:
Parte entera. Dividimos por la base, que es 16:
Numero | 238 | 14 |
División | ÷16= 14 | – |
Resto | E | E |
Parte decimal, multiplicamos por la base, que es 16:
Numero | 0,32 | 0,12 | 0,92 | 0,72 | 0,52 | … |
Multiplicación | *16=5,12 | *16=1,92 | *16=14,72 | *16=11,52 | *16=8,32 | … |
Parte entera | 5 | 1 | E | B | 8 | … |
El resultado obtenido es el siguiente: 238,32 = EE,51EB8…
Convertir número de hexadecimal a decimal
Pues bien, hagamos entonces el proceso contrario. Vamos a pasar el número hexadecimal EE,51E a decimal:
E | E | , | 5 | 1 | E |
E·161=224 | E·160=14 | 5·16-1=0,3125 | 1·16-2=0,003906 | E·16-3=0,00341 |
El resultado es: 224 + 14 , 0,3125 + 0,003906 + 0,00341 = 238,3198…
Pues estas son las principales formas de cambiar de base de un sistema de numeración a otro. El sistema es aplicable a un sistema en cualquier base y el sistema decimal, aunque estos son los más utilizados en el campo de la informática.
También te puede interesar:
Si tienes alguna duda déjanosla en los comentarios. Trataremos de ayudarte.