Los sistemas decimal y binario representan los mismos números utilizando conjuntos de cifras distintos. El decimal usa las diez cifras del 0 al 9; el binario solo utiliza 0 y 1. Cambia la escritura, pero no la cantidad: el decimal 13 y el binario 1101 representan el mismo valor.

El NIST define un bit como un dígito binario cuyo valor es 0 o 1. Una secuencia ordenada de bits puede interpretarse como un entero sin signo, pero su significado depende del contexto. Comprender las conversiones significa, por tanto, entender la notación posicional y no memorizar una tabla.

¿Qué significa la base de un sistema numérico?

La base indica cuántas cifras elementales hay disponibles y determina el peso de las posiciones. En base 10, cada posición vale una potencia de 10: unidades, decenas, centenas. En base 2, cada posición vale una potencia de 2.

De derecha a izquierda:

2⁰ = 1, 2¹ = 2, 2² = 4, 2³ = 8, 2⁴ = 16, ...

La cifra de la derecha es el bit menos significativo, LSB; la de la izquierda es el bit más significativo, MSB. El glosario del NIST utiliza la misma convención.

Esquema completo de conversión de decimal a binario y de binario a decimal Las divisiones sucesivas entre 2 producen las cifras binarias; en sentido inverso cada cifra se multiplica por el peso de su posición.

De binario a decimal: sumar los pesos

Se numeran las posiciones desde 0 empezando por la derecha. Cada cifra se multiplica por la potencia de 2 correspondiente y se suman los resultados.

Para 1001₂:

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

8 + 0 + 0 + 1 = 9

Por tanto, 1001₂ = 9₁₀. El cero no elimina el peso de la posición: simplemente hace que su contribución sea cero.

Ejemplo ilustrado de la conversión del número binario 1001 al número decimal 9 Cada 1 incorpora el peso de su posición; cada 0 lo deja fuera de la suma.

Un método rápido de izquierda a derecha

También se puede leer de izquierda a derecha, duplicando el resultado parcial y sumando la cifra siguiente.

Para 1101₂:

  • comenzar con 1;
  • 1 × 2 + 1 = 3;
  • 3 × 2 + 0 = 6;
  • 6 × 2 + 1 = 13.

Funciona porque desplazarse una posición a la izquierda en base 2 equivale a multiplicar por 2.

De decimal a binario: divisiones sucesivas entre 2

Para convertir un entero positivo se divide repetidamente entre 2. En cada paso se anotan el cociente entero y el resto. Como el divisor es 2, el resto solo puede ser 0 o 1.

Conversión de 13:

  • 13 ÷ 2 = 6, resto 1;
  • 6 ÷ 2 = 3, resto 0;
  • 3 ÷ 2 = 1, resto 1;
  • 1 ÷ 2 = 0, resto 1.

Leyendo los restos del último al primero obtenemos 1101₂.

¿Por qué los restos se leen de abajo hacia arriba?

No es una regla arbitraria. Cada división cumple:

n = 2 × cociente + resto

El primer resto indica la unidad binaria 2⁰, por lo que es la cifra de la derecha. La siguiente división descubre la cifra de 2¹, después 2² y así sucesivamente. Las cifras se descubren de la menos significativa a la más significativa, pero se escriben en el orden contrario.

Explicación de por qué los restos de las divisiones entre 2 se leen de abajo hacia arriba El primer resto corresponde a 2⁰, el segundo a 2¹: primero se descubren las cifras de la derecha.

Demostración con el número 9

Las divisiones producen 1, 0, 0, 1. Corresponden respectivamente a 2⁰, 2¹, 2² y 2³. Al escribir las posiciones en orden normal obtenemos 1001₂.

El caso especial del cero

Si el número inicial es 0, un ciclo normal de divisiones no comienza. Sin embargo, su representación no es una cadena vacía, sino 0. Los programas deben tratar este caso explícitamente.

¿Los ceros iniciales cambian el valor?

En un entero sin signo, no: 101, 0101 y 00000101 representan 5. Aun así, pueden indicar una anchura fija de 8, 16 o 32 bits.

Un byte es una secuencia de ocho bits. Con ocho bits sin signo se representan valores de 0 a 255; el máximo es 11111111₂.

¿La primera cifra de la izquierda siempre indica el signo?

No. En una conversión escolar normal, salvo que se diga lo contrario, el número es sin signo. Por ello, 1001₂ vale 9 y no -9; el primer 1 representa el peso 2³.

La interpretación cambia únicamente cuando se declara una representación con signo y una anchura concreta. Los ordenadores modernos suelen usar complemento a dos. Con cuatro bits:

  • 0101₂ representa +5;
  • 1011₂ representa -5 en complemento a dos.
Comparación entre números binarios sin signo y números con signo en complemento a dos El bit de la izquierda indica un valor negativo solo cuando se conocen el formato con signo y la anchura.

Una precisión sobre el «bit de signo»

Se suele llamar bit de signo al bit de la izquierda para simplificar. En complemento a dos no es simplemente un símbolo menos separado. En una palabra de n bits tiene peso negativo -2ⁿ⁻¹, mientras que los demás conservan pesos positivos.

Con cuatro bits:

1011₂ = -8 + 0 + 2 + 1 = -5

Esta interpretación solo vale porque hemos declarado un entero con signo de cuatro bits en complemento a dos. La misma secuencia sin signo vale 11. Una secuencia de bits necesita siempre un formato y un contexto.

Intervalos representables

Con n bits sin signo se representan valores de 0 a 2ⁿ - 1. Con n bits en complemento a dos, de -2ⁿ⁻¹ a 2ⁿ⁻¹ - 1.

  • 4 bits sin signo: 0 a 15;
  • 4 bits con signo: -8 a +7;
  • 8 bits sin signo: 0 a 255;
  • 8 bits con signo: -128 a +127.

Comprobar el resultado con Python

El método manual explica el mecanismo. La documentación oficial de Python define bin() para producir una cadena binaria e int(texto, 2) para interpretar una cadena en base 2.

bin(13) # '0b1101' int("1101", 2) # 13

El prefijo 0b identifica la notación binaria. Atención: bin(-5) devuelve -0b101, una representación textual con signo menos, no una palabra de anchura fija en complemento a dos.

Errores frecuentes

  • Comenzar por la potencia 1: la posición derecha es 2⁰.
  • Leer los restos en el orden en que aparecen: se invierte el número.
  • Olvidar el cero: su representación es 0.
  • Usar pesos decimales: en binario son 1, 2, 4, 8, 16.
  • Interpretar todo 1 inicial como negativo: debe haberse definido un formato con signo.
  • Confundir valor y codificación: una misma secuencia puede tener significados distintos.

Preguntas frecuentes

¿Por qué dividimos entre 2?

Porque la base de destino es 2. La división por la base separa el cociente de las unidades de la posición actual.

¿Puedo convertir usando solo potencias de 2?

Sí. Se resta la mayor potencia posible y se coloca 1 en las posiciones utilizadas. Las divisiones son un método más sistemático.

¿Cómo compruebo una conversión?

Volviendo a decimal mediante la suma de pesos. Si aparece el número inicial, el resultado es coherente.

¿Sirve para números con decimales?

La parte entera usa divisiones entre 2. La parte fraccionaria requiere multiplicaciones sucesivas por 2 y merece un artículo aparte.

Fuentes oficiales y lecturas recomendadas