sistema-decimal-hexadecimal-octal

Sistemas binario, decimal, hexadecimal y octal

Hasta ahora hemos hablado de cómo representar números, de notación posicional, y de como con ella podemos representar números en cualquier base.

Dentro de las infinitas bases que podríamos definir, hay algunas que se usan más que otras. Estas son el sistema decimal, el sistema binario, octal y hexadecimal.

Cada uno tiene sus propias características y aplicaciones en el ámbito de la informática y la programación. Así que vamos a hablar un poco de cada uno de ellos.

Sistema Decimal

El sistema decimal es el sistema numérico más utilizado en el mundo cotidiano. Es el que usamos todos los días. Como sabes, se compone de diez dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9.

Cada posición en un número decimal representa una potencia de diez. Por ejemplo, el número decimal 123 representa

1 * 10² + 2 * 10¹ + 3 * 10⁰

Que es igual a 123 en decimal (¡oh, vaya sorpresa!)

Aunque es intuitivo para los seres humanos, simplemente porque estamos acostumbrados a el, a nivel computación “encaja regulero”.

Por tanto, aunque lo usaremos continuamente en nuestros programas, generalmente va a tener que se traducido para que pueda ser gestionado por el ordenador.

Sistema Binario

El sistema binario es el sistema numérico fundamental en electrónica digital y computación. Esto es así porque es más sencillo construir máquinas digitales, y estas tienen varias ventajas sobre otro tipo de máquinas. Además, es el sistema binario es el objeto principal de este curso 😊.

El sistema binario es base 2, y por tanto se compone de solo dos símbolos. Podíamos haber cogido cualquier símbolo, pero por simplicidad los llamamos 0 y 1.

Cada posición en un número binario representa una potencia de dos. Por ejemplo, el número binario 1011 representa

1 * 2³ + 0 * 2² + 1 * 2¹ + 1 * 2⁰

Que es igual a 11 en decimal.

Sistema Octal

El sistema octal es otro sistema numérico que se utiliza en informática, aunque es menos común en comparación con el binario, decimal y hexadecimal.

Este sistema se compone de ocho símbolos, que nuevamente por comodidad vamos a usar 0, 1, 2, 3, 4, 5, 6 y 7.

Cada posición en un número octal representa una potencia de ocho. Por ejemplo, el número octal 53 representa

5 * 8¹ + 3 * 8⁰,

Que es igual a 43 en decimal.

No es tan importante como los otros de esta entrada, así que no le vamos a dedicar mucho más tiempo. Pero por si alguna vez os lo encontráis, pues ahí está.

Sistema Hexadecimal

El sistema hexadecimal es una extensión del sistema decimal que utiliza dieciséis símbolos. Por simplicidad, seguiremos usando los símbolos de 0 a 9 pero… oh, oh… hemos hecho corto de símbolos. Así que lo vamos a ampliar “cogiendo prestadas” las letras A a F.

Es decir, generalmente el conjunto de símbolos que usaremos en hexadecimal serán 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F, que corresponden con los números 0 a 15 en decimal.

Cada posición en un número hexadecimal representa una potencia de dieciséis. Por ejemplo, el número hexadecimal 1A3 representa

1 * 16² + 10 * 16¹ + 3 * 16⁰

Que es igual a 419 en decimal.

¿Por qué inventamos semejante aberración de la naturaleza? Porque es una forma muy cómoda de trabajar con números binarios. En programación, se utiliza comúnmente para representar direcciones de memoria, colores en la pantalla y valores hexadecimales de bytes.

Recordemos que, cuanto más pequeña sea tu base, más largo es el número que tienes que usar. El formato hexadecimal permite trabajar con números mucho más compactos que el sistema binario.

Como, a diferencia del sistema decimal, 16 es una potencia de 2, la conversión entre binario y hexadecimal es muy rápida. Cada 4 dígitos en binario, le toca un dígito en hexadecimal.

Comparación entre sistemas

Vamos a ver los dieciséis primeros números, codificados en sistema decimal, binario, octal y hexadecimal.

DecimalBinarioOctalHexadecimal
0000
1111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Cosicas interesantes para ver:

  • El decimal es el que estamos acostumbrados a ver
  • El binario, pues binario 😅
  • El octal es un desastre. Si vuestra profe os lo enseña, decirle de mi parte que es algo inutil (el octal, no tu profe)
  • El hexadecimal al principio cuesta, porque tienes 6 letras (A … F), pero tiene la ventaja de que se convierte muy fácil con binario.
  • Por contra, el decimal, a partir del 9 ha pasado a 2 dígitos. Por lo que la conversión es mucho más difícil de binario a decimal, que binario a hexadecimal