Pasar de decimal a hexadecimal

Actualizada el

En este artículo aprenderemos a pasar de base decimal a base hexadecimal y también en sentido contrario. Ello nos ayudará a entender los colores en el mundo de la informática, ya que generalmente se expresan en código hexadecimal. No se requieren conocimientos avanzados en matemáticas.

¿Qué es la base hexadecimal?

Primeramente, la base diez usa 10 símbolos para representar los números, la base decimal solo usa dos y, aunque hay más, la base hexadecimal usa 16 símbolos. Cuando estamos en una base inferior a 10, con los símbolos de siempre es suficiente, pero cuando tenemos más, debemos recurrir a las letras. En el caso de la base hexadecimal los símbolos son: 0,1,…,9, A, B, C, D, E, F.

En segundo lugar, la manera de contar con esta base es igual que siempre: cuando llegamos al último símbolo, yuxtaponemos dos siguiendo el orden. Esto es:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2A, 2B, 2C, 2D, 2E, 2F, 30…

De ese modo tenemos la siguiente tabla:

00
11
22
33
44
55
66
77
88
99
A10
B11
C12
D13
E14
F15
1016

Ahora que ya sabemos contar en base 16, hexadecimal, pasemos a ver cómo cambiar de base. Para ello, nos será útil conocer la expresión polinómica de un número.

Expresión polinómica de los números

Todo número en base 10 se puede expresar como suma de potencias de 10. Así tenemos que 4 = 4·100, pero en estos casos en que 10 está elevado a 0, evitaremos poner la potencia. De ese modo tenemos que 239 = 200 + 30 + 9 = 2·102 + 3·10+ 9. Fíjate que si cambiamos el 10 por la x, nos da un polinomio. De ahí su nombre. Vamos a por más ejemplos.

Ejemplos

  • 5 = 5·100
  • 137 = 100 + 30 + 7 = 1·102 + 3·10 + 7
  • 24683 = 2·104 + 4·103 + 6·102 + 8·10 + 3
  • -137 = – 1·102 – 3·10 – 7

Si por el contrario estamos en base 2, el mecanismo de la notación polinómica será el mismo, pero cambiando el 10 por el 2. Análogamente para base hexadecimal.

Ejemplos

Base binaria

  • 101 = 1·22 + 0·2 + 1
  • 1001110101 = 1·29 + 0·28 + 0·27 + 1·26 + 1·25 + 1·24+1·23 + 1·22 + 0·2 + 1

Base hexadecimal

  • 55 = 5· 16 + 5
  • 387 = 3·162 + 8·16 + 7

Pasemos, seguidamente al cambio de notación entre base 10 y 16.

Decimal a hexadecimal

El primer paso consiste en ir dividiendo entre 16 para obtener las potencias de 16 y así expresar el número como potencias de 16. En lo que sigue denotaré que estoy en base 10 de la siguiente manera 423|10 y en base hexadecimal así 378|HEX cuando sea necesario. Veamos un ejemplo para terminarlo de entender.

Ejemplo 1

239|10 =

239:16= 14·16 +15 = EF|HEX , ya que 14|10 = E|HEX y 15|10 = F|HEX

Por tanto, 239|10 = EF|HEX

Ejemplo 2

27813|10 =

27813 = 1738· ·16 + 5, como 1738|10 no sé qué número es en base hexadecimal, vuelvo a dividir entre 16.

1738 = 108 ·16 + 10

Como 108|10 me deja sin saber cuál es, vuelvo a dividir entre 16

108= 6·16 + 12

Entonces tenemos lo siguiente:

27813 = 1738· 16 + 5 = (108· 16 + 10)·16 + 5 = ((6·16 + 12)·16 + 10)·16+5= 6·163 + 12·162 + 10·161+5 = 6CA5|HEX

Por tanto, 27813|10 = 6CA5|HEX

Hexadecimal a decimal

Si antes dividíamos ahora debemos multiplicar por 16 o, como decía, expresar el número en forma polinómica o en potencias de 16, multiplicar y sumar en base 10 y obtendremos el valor buscado en base 10.

Ejemplo

3F5A|HEX = 3 · 163 + 15·162 + 5·161 +10 = 16218|10

Truco: una tabla

En informática, tenemos que los bytes (8 bits) van del valor 0 al valor 255 (recuerda que con dos símbolos elegidos de 8 en 8 tenemos 2⁸ = 256 posibilidades), sin tomar los decimales. Por ello, todo se codifica con números hexadecimales que van de 0 a 255, que en base 16 es de 0 = 00 a FF. Así que esta tabla te será útil.

Tabla para la pasar entre notación decimal y hexadecimal.
Primero la columna izquierda y luego la fila superior

Ejemplos

  • Queremos pasar de 206|10 a Hex, Buscamos el 206 y vemos que esta casilla corresponde a la casilla C de la columna de la izquierda y a la casilla E de la fila superior.
  • Buscamos el valor de A9|HEX en base 10. Elegimos A en la columna izquierda y nos desplazamos hasta el 9 de la fila superior, la casilla marca 169.A9|HEX = 169|10 .
  • Si olvidamos si es primero la fila o la columna, tenemos el siguiente recurso: 10|HEX = 16|10 por tanto primero la columna y luego la fila superior.

Conclusiones

Una vez sabemos pasar de decimal a hexadecimal y en sentido contrario, nos será más fácil entender la codificación de los colores en informática que se basa en el cubo RGB. En este enlace explico la lógica de este cubo tan famoso en internet, ya que también se usa para los colores HTML y CSS como se puede ver en esta página.

Espero haberte ayudado. De lo contrario puedes dejar tus dudas en los comentarios responderé con mucho gusto.


entradas recientes

Deja un comentario