Guía

Qué es el complemento a 2 y por qué lo usan los ordenadores

La forma estándar de guardar números negativos en binario, explicada desde cero y con ejemplos resueltos.

Por el equipo de BinaFácil · Actualizado el 29 de septiembre de 2026

El problema: el binario no tiene signo menos

En papel escribimos −5 poniendo un signo delante, pero un ordenador solo tiene ceros y unos. Hace falta una convención para decidir qué combinaciones de bits representan números negativos. Se probaron varias ideas y la que ganó, y la que usan prácticamente todos los procesadores actuales, es el complemento a 2.

La primera idea (y por qué no funcionó bien)

Lo más intuitivo sería reservar el primer bit para el signo (0 positivo, 1 negativo) y usar el resto para el valor. Es el sistema llamado signo y magnitud. Tiene dos problemas: existen dos ceros distintos (+0 y −0), y sumar un positivo con un negativo exige circuitos especiales. El complemento a 2 resuelve ambos.

Cómo se calcula, paso a paso

Para escribir un número negativo −N con un número fijo de bits:

  1. Escribe N (en positivo) en binario, rellenando con ceros a la izquierda hasta completar los bits.
  2. Invierte todos los bits.
  3. Suma 1.

Ejemplo: −20 con 8 bits

  • 20 = 00010100
  • Invertido: 11101011
  • Más 1: 11101100

Así que −20 en complemento a 2 de 8 bits es 11101100. Los números positivos no cambian: 20 sigue siendo 00010100.

Cómo leer un binario con signo

Si el primer bit es 0, el número es positivo y se lee normal. Si es 1, es negativo. Para saber su valor tienes dos opciones:

  • Repetir la receta: invertir y sumar 1 te devuelve el valor positivo. De 11101100 → 00010011 → 00010100 = 20, así que el número era −20.
  • Usar un peso negativo: el primer bit vale −128 (en 8 bits) en lugar de +128. Entonces 11101100 = −128 + 64 + 32 + 8 + 4 = −20.

Por qué es tan buena idea

La gran ventaja es que la suma funciona igual para todos. Sumemos 20 + (−20) en 8 bits:

00010100 + 11101100 = 1 00000000

El 1 que sale por la izquierda (el acarreo) se descarta porque no cabe en 8 bits, y el resultado es exactamente 0. El procesador no necesita saber si los números eran positivos o negativos: usa el mismo circuito sumador. Además, solo existe un cero.

Rangos y desbordamiento

Con n bits se pueden representar los números de −2ⁿ⁻¹ a 2ⁿ⁻¹ − 1:

BitsMínimoMáximo
8−128127
16−32.76832.767
32−2.147.483.6482.147.483.647

Si una operación da un resultado fuera de ese rango se produce un desbordamiento (overflow). Por ejemplo, en 8 bits 127 + 1 da 10000000, que se interpreta como −128. Este tipo de error ha causado fallos reales en programas y videojuegos, y es la razón de que en programación haya que elegir bien el tamaño de las variables.

Compruébalo tú mismo Complemento a 2 Abrir la herramienta →

Sobre este proyecto

BinaFácil es un proyecto independiente de herramientas gratuitas. Nació como un conversor sencillo de decimal a binario y ha ido creciendo con más herramientas gratuitas de matemáticas y computación, pensadas para estudiantes, programadores y cualquiera con curiosidad.

Todas las herramientas funcionan enteramente en tu navegador, son gratuitas, no requieren cuenta y no guardan tus datos en ningún servidor. ¿Preguntas, ideas o algo que no funciona como debería? Escribe a contacto@binafacil.com