Generalidades Programación

Sistema Numérico Hexadecimal

PorRoberto C. González
Para: Ethical Hack

El sistema numérico hexadecimal, o simplemente hexadecimal (abreviado Hex) es un sistema de numeración de base 16, es decir, para representar cualquier número se utilizan 16 dígitos los cuales son:

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

En informática para indicar que un dígito es hexadecimal se suele indicar con una H después del número, de este modo

  • 2h – 2 hex – 2 hexadecimal
  • 5h – 5 hex – 5 hexadecimal

Cuando el número tiene un solo dígito, se suele poner un 0 en la parte más significativa del número, de este modo

  • 2h se suele escribir 02h ó 02H, también lo podrás encontrar expresado como 0x2
  • 5h se suele escribir 05h ó 05H, también lo podrás encontrar expresado como 0x5

Conveniencia del sistema Hexadecimal

El sistema Hexadecimal en la informática se utiliza ampliamente por dos razones básicas:

Por la correspondencia directa entre números binarios y hexadecimales, nos permite simplificar enormemente la representación de números binarios.

Es más rápido representar y efectuar operaciones de cualquier tipo en sistema hexadecimal.

Conversión Binario – Hexadecimal

El sistema binario tiene una correspondencia directa con el sistema Hexadecimal, de modo que la conversión entre ambos sistemas es muy rápido y eficiente (a nivel de máquina), por lo que con frecuencia nos veremos representando instrucciones y otros valores en hexadecimal, en lugar de binario.

Equivalencias Binario – Hexadecimal

La equivalencia de valores binario – hexadecimal la podemos ver en la siguiente tabla:

HexadecimalBinario
00000
10001
20010
30011
40100
50101
60110
70111
81000
91001
A1010
B1011
C1100
D1101
E1110
F1111

Con la cual podremos realizar conversiones de forma muy rápida y simple.

Conversión de binario a hexadecimal

La base de números binarios está representada por 2 valores y la base de números Hex está representada por 16 valores. A fin de convertir un número binario en su equivalente hexadecimal:

  1. Dividir el número binario en grupos, cada grupo debe contener cuatro bits
  2. A continuación, convertir cada grupo en su equivalente hexadecimal, utiliza la tabla de conversión para obtener el resultado.

El siguiente ejemplo muestra lo sencillo que es hacer una conversión binario-hexadecimal.

Ejemplo: Convertir el número binario (1111110101110011)2 en su equivalente hexadecimal

Binario1111110101110011
HexadecimalFD73

Resultado: FD73h

Conversión de hexadecimal a binario

Conversión Hexadecimal - Binario
Conversión Hexadecimal – Binario

Conversión Hexadecimal – Binario

Conversión Hexadecimal a Binario

La conversión de número hexadecimal a binario es igual de trivial, pero de forma inversa:

Tomar el dígito hexadecimal individual

De la tabla de equivalencia binario-hexadecimal reemplazar por el equivalente binario

El siguiente ejemplo muestra la conversión hexadecimal a binario.

Ejemplo: Convertir el número hexadecimal (9DBA5)16 a su equivalente binario

Hexadecimal9DBA5
Binario10011101101110100101

Resultado: 10011101101110100101

Representación de instrucciones de código máquina en formato hexadecimal.

Anteriormente vimos un ejemplo en el que utilizábamos algunas «instrucciones en código máquina», recuerda que nosotros podemos definir arbitrariamente el significado de las instrucciones y es completamente válido.

InstrucciónSignificado (Definidas por el fabricante del CPU)
0000 0000 –No hacer nada
0000 0001 –Sumar V1 y V2 y guardar el resultado
0000 0011 –Muestra en pantalla la variable R
0000 0111 –Guarda en memoria lo que se te da en una variable llamada V1
0000 1111 –Guarda en memoria lo que se te da en una variable llamada V2
0001 0000 –Mover de la memoria el valor de Suma a la variable R
DatoSignificado (Ya sea por un estándar o por nosotros)
0000 0001 –1 (el número 1)
0000 0011 –2 (el número 2)
0000 0100 –3 (el número 3)

Utilizando la notación hexadecimal para las instrucciones y datos ahora tendremos:

InstrucciónSignificado (Definidas por el fabricante del CPU)
00h –No hacer nada
01h –Sumar V1 y V2 y guardar el resultado
03h –Muestra en pantalla la variable R
07h –Guarda en memoria lo que se te da en una variable llamada V1
0Fh –Guarda en memoria lo que se te da en una variable llamada V2
10h –Mover de la memoria el valor de Suma a la variable R
DatoSignificado (Ya sea por un estándar o por nosotros)
01h –1 (el número 1)
04h –2 (el número 2)
07h –3 (el número 3)

y nuestro «programa» quedará:

InstrucciónDatoPseudo código
07h01hGuarda en la variable V1 el número 1
0Fh03hGuarda en la variable V2 el número 2
01h Realizamos la suma del valor de V1 más el valor de V2 (1 + 2, en nuestro ejemplo)
10h Asignamos a la variable R el valor de suma (R = 3)
03h Mostrar en pantalla la variable R
00h No hagas nada

El procesador leerá

0000011100000001000011110000001100000001000100000000001100000000

Nosotros leeremos:

07010F0301100300

Queda por demás claro como simplifica el formato hexadecimal la escritura y lectura de instrucciones en formato binario

Conclusiones.

Para un usuario completamente nuevo o ajeno al área de la informática a primera vista todo lo anterior parecerá mucho «rollo», incluso para algunos del área informática, tal vez resulte conveniente mencionar que aunque no lo parezca, esta ultra compacta «iniciación» le presenta un vistazo de cómo opera a muy bajo nivel una computadora y en general, la representación de cualquier tipo de información que se manipula en las computadoras. Y es este nivel, en donde tiene su origen y su respuesta muchas de las cosas que un programador hará. Y más importante, este es el origen de cualquier sistema de cómputo por muy complejo que pueda ser.

A partir de este punto, el usuario interesado podría abordar el tema con el rigor y metodología que su especialidad le requiera.

Concluyo mencionando, una vez más, que hasta este momento se ha simplificado todo a niveles «escandalosos» para profesionales informáticos, solo resta señalar que esta introducción está orientada a usuarios no informáticos que requieren aprender a programar.

Es bueno que hayas tomado la decisión de aprender un lenguaje de programación que te permita codificar tus programas, una vez que sepas hacerlo, te sugiero que revises la parte formal de la programación, la cual es independiente del lenguaje que utilices, y además te hará un mejor programador.


Si tienes alguna duda que no se responde en este documento, por favor plantea tu pregunta para poder responderte. O escribe directamente a soporte@ehack.mx



Referencias

  • Por Roberto C. González

Fuente Imágenes

  • «Sistema Numérico Hexadecimal»: Imagen cortesía by Nala Systems
  • «Conversión Hexadecimal – Binario»: Imagen cortesía by Pexels en Pixabay 

Licencia Creative Commons
  
Sistema Numérico Hexadecimal, por Roberto C. González. Se distribuye bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional. 
©2017 - 2025, Ethical Hack, Todos los derechos reservados sobre el contenido propio.

eHack Blog

About Author

Leave a comment

También te podría gustar...

C++ Programación

Presentación: Tutorial de C++

Bienvenido a este tutorial de lenguaje C++, está pensado para usuarios que nunca han programado y para usuarios que no
C++ Programación

Lenguaje C++ – Introducción

Presento algunas razones porqué empezar con C++ y una breve descripción histórica del lenguaje. Además algunos compiladores de C++