Métodos para convertir números decimales a hexadecimal y viceversa


A día de hoy ya hemos visto como podemos convertir números decimales a binario y octal, hoy vamos a ver cómo podemos pasarlos al sistema hexadecimal.

El sistema hexadecimal es un sistema de base 16, por lo tanto tiene 16 valores posibles que van del 0 al 9 y de la A a la F.

Valores hexadecimal: 0 1 2 3 4 5 6 7 8 9 A B C D E F

Las letras A B C D E F corresponden a los valores 10, 11, 12, 13, 14, 15 respectivamente.

  • Un valor hexadecimal corresponde a 4 bits, por lo que se convierte en un sistema muy útil para simplificar largas cadenas de binario.

A continuación muestro una tabla de ayuda con la correspondencia de valores.

Decimal  Binario  Octal  Hexadecimal
0               0000      0             0
1               0001      1             1
2               0010      2             2
3               0011      3             3
4               0100      4             4
5               0101      5             5
6               0110      6             6
7               0111      7             7
8               1000      10           8
9               1001      11           9
10             1010      12           A
11             1011      13           B
12             1100      14           C
13             1101      15           D
14             1110      16           E
15             1111      17           F

Como ocurre con la conversión de binario y octal, en hexadecimal hay varios métodos, en esta entrada pondré dos métodos para convertir de decimal a hexadecimal y otros dos para convertir de hexadecimal a decimal.

Convertir números decimales a hexadecimal.

Primera forma.

La primera forma la haremos a base de dividir el número decimal en 16 (al igual que en binario lo hacíamos entre 2) hasta que no podamos dividir más.

Después de realizar las divisiones nos fijamos si hay algún resto superior o igual a 10, si es así, pasaremos cada número a la letra hexadecimal que corresponde. En este ejemplo el resto “13” se convierte al valor “D”.

A continuación nos fijamos en los restos de las divisiones y vamos escribiéndolos, siendo el primer número hexadecimal el resto de la última división.

El resultado es 74D16).

Segunda forma.

Esta forma es más sencilla que la anterior y consiste en pasar el número decimal a binario y después convertirlo a hexadecimal.

Si aun no sabéis convertir un número decimal a binario os aconsejo que leáis primero esta entrada.

Vamos a partir de un numero binario (ya hemos convertido un numero decimal).

1001111010110112).

Para pasar de un número binario a decimal debemos hacer agrupaciones de 4 bits, tomando el punto de inicio el último número binario de la derecha.

  • Iremos haciendo agrupaciones de derecha a izquierda.
  • Si el ultimo grupo no llega a 4 bits, los rellenaremos con 0, por ejemplo, si el ultimo grupo de 4 bits es 10, lo rellenaremos con 0 de la siguiente forma 0010

Explicación:

  • Primer grupo -> 1011 corresponde a B (11) en hexadecimal.
  • Segundo grupo -> 0101 corresponde a 5 en hexadecimal.
  • Tercer grupo -> 1111 corresponde a F (15) en hexadecimal.
  • Cuarto grupo -> 100 se transforma en 0100, corresponde a 4 en hexadecimal.

El resultado de 1001111010110112) es 4F5B16) cuyo valor decimal es 2031510).

Convertir un número hexadecimal en decimal.

Primera forma.

La forma más sencilla de convertir un número hexadecimal a decimal, es pasando dicho número a binario y después convertirlo en decimal.

Vamos a tomar el número hexadecimal A13F16).

1º) Primero lo transformamos el numero hexadecimal a binario.

  • Primer número hexadecimal: A equivale a 10102).
  • Segundo número hexadecimal: 1 equivale a 00012).
  • Tercer número hexadecimal: 3 equivale a 00112).
  • Cuarto numero hexadecimal: F equivale a 11112).

El resultado es 10100001001111112).

2º) Convertimos el número binario en decimal.

1×215 + 1×213 + 1×28 + 1×25 + 1×24 + 1×23 + 1×22 + 1×21+ 1×20 = 32768 + 8192 + 256 + 32 + 16 + 8 + 4 + 2 + 1 = 4127910).

Resultado:

A13F16) equivale a 10100001001111112) cuyo decimal es 4127910).

* Observamos que un número hexadecimal simplifica en mayor medida números decimales y binarios.

Segunda forma.

La segunda forma de convertir números hexadecimales en decimales es haciendo la segunda parte de la primera forma, pero es vez de multiplicar cada valor por 2, lo haremos por 16 ya que es la base hexadecimal, elevado a la posición que corresponda empezando por 0.

Tomando el ejemplo anterior: A13F16)

Ax163 + 1×162 + 3×161 + Fx160 = 40960 + 256 + 48 + 15 = 4127910)

* Para poder multiplicar el valor A y F del ejemplo lo he sustituido por sus valores decimales siendo A = 10 y F = 15.

Con esto doy por finalizado las entradas teoricas introductorias para la conversión de distintos tipos de numeración.