Por qué binario, octal y hexadecimal

Una base no es más que el número de cifras disponibles antes de tener que pasar a la posición siguiente. En base diez hay diez, en base dos solo cero y uno, en base dieciséis hacen falta dieciséis y para las últimas seis se usan las letras de la A a la F. El valor de un número no cambia con la base: cambia solo cómo se escribe.

El binario existe porque un circuito distingue de forma fiable dos estados y no diez. El hexadecimal existe porque el binario resulta ilegible para una persona: cada cifra hexadecimal corresponde exactamente a cuatro bits, así que la conversión entre ambos es una sustitución directa grupo a grupo, sin cálculos. Lo mismo vale para el octal, donde una cifra son tres bits.

El complemento a dos es la manera en que los ordenadores representan los números negativos, y su elegancia está en que la suma funciona sin reglas especiales de signo. Un número negativo se obtiene invirtiendo todos los bits de su valor absoluto y sumando uno: en ocho bits, −5 se convierte en 11111011. De ahí se sigue que el intervalo no es simétrico, porque el cero ocupa un sitio en la mitad positiva: con n bits se va de −2ⁿ⁻¹ a 2ⁿ⁻¹−1.

Errores frecuentes

  • Confundir el bit de signo con un signo menos: en complemento a dos el bit más significativo vale −2ⁿ⁻¹, no «menos». Por eso 10000000 en ocho bits es −128 y no −0.
  • Olvidar que el rango positivo es uno más corto: en ocho bits con signo se llega a 127, no a 128. Es la causa de buena parte de los desbordamientos en los ejercicios.
  • Leer el hexadecimal como decimal: 10 en hexadecimal vale 16, no diez. Cuando el contexto no está claro conviene usar los prefijos 0x y 0b.

Preguntas frecuentes

¿Cómo se convierte un número de binario a decimal?

Se multiplica cada cifra por la potencia de dos correspondiente a su posición, contando desde la derecha a partir de cero, y se suman los resultados. 10110110 vale 128+32+16+4+2 = 182.

¿Cómo se convierte de decimal a binario?

Se divide repetidamente entre dos anotando los restos, y se leen los restos del último al primero. También se pueden restar las potencias de dos empezando por la mayor que quepa.

¿Cómo se calcula el complemento a dos de un número negativo?

Se escribe el valor absoluto en binario con el ancho elegido, se invierten todos los bits y se suma uno. Para −5 en ocho bits: 00000101 pasa a 11111010 y sumando uno da 11111011.

¿Por qué se usa tanto el hexadecimal en informática?

Porque una cifra hexadecimal equivale exactamente a cuatro bits, así que un byte se escribe con solo dos cifras. La conversión con el binario es inmediata y no requiere ningún cálculo, a diferencia de la conversión con el decimal.

Cómo funciona este cálculo

Valor de un número en base b con cifras cₙ…c₁c₀: V = Σ cᵢ · bⁱ, con i empezando en cero por la derecha. De decimal a base b: divisiones sucesivas entre b, leyendo los restos en orden inverso. Correspondencia directa: una cifra hexadecimal son 4 bits y una octal son 3 bits, así que binario-hexadecimal y binario-octal se convierten agrupando bits. Complemento a dos en n bits: para un valor v no negativo el patrón es el propio v; para v negativo es 2ⁿ + v, que se obtiene invirtiendo los bits de |v| y sumando 1. Intervalo representable con signo: de −2ⁿ⁻¹ a 2ⁿ⁻¹ − 1.