Codigo màquina

Sistema Numérico Hexadecimal

Sistema Numérico Hexadecimal

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 Hexadecinal

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

  1. Por la correspondencia directa entre números binarios y hexadecimales, nos permite simplificar enormemente la representación de números binarios.
  2. 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 – Hexadecinal

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

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

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

Binario 1111 1101 0111 0011
Hexadecimal F D 7 3

Resultado: FD73h

Conversión de hexadecimal a binario

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

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

  1. Tomar el dígito hexadecimal individual
  2. 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

Hexadecimal 9 D B A 5
Binario 1001 1101 1011 1010 0101

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ón Significado (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

 

Dato Significado (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ón Significado (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
Dato Significado (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ón Dato Pseudo código
07h 01h Guarda en en la variable V1 el número 1
0Fh 03h Guarda en en la variable V2 el número 2
01h Realizamos las 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 ésta introducción está orientada a usuarios no informáticos que requieren aprender a programar.

Por Roberto C. González
Para Ethical Hack

 


¿Deseas participar en nuestro grupo de estudio para aplicar la certificación CEH? 

Aplicación de medidas para la implantación de la L.O.P.D. en las empresas

Obtendrás información ampliada a la que has leído en este artículo, y material adicional, visita https://ehack.mx/portfolio-view/material-de-estudio-ceh-online/ para más información o ecríbenos a ceh@ehack.mx

 

Ethical hack
Ethical hack

 


Fuente Imágenes:

“Salida Hexadecimal”: Imagen cortesía by Wikipedia en Wikimedia
“Conversión Hexadecimal – Binario”: Imagen cortesía by Wikipedia en Wikimedia

Referencias

http://matematicasparacomputadora.weebly.com/11-sistemas-numericos-octal-binario-decimal-hexadecimal.html
http://es.ncalculators.com/digital-computation/binary-hex-converter.htm

Licencia de Creative CommonsSistema Numérico Hexadecimal by Roberto C. González para Ethical Hack is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.

 

Comentarios de Facebook

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.