Visión general

En sistemas digitales es necesario representar números enteros negativos usando bits. Una representación con signo asigna, dentro de un conjunto finito de patrones binarios, códigos distintos para valores positivos y negativos. Existen varias técnicas diseñadas para que las operaciones aritméticas y el almacenamiento sean eficientes y coherentes: signo y magnitud, complemento a uno, complemento a dos y representaciones con sesgo (excess). Cada método tiene consecuencias prácticas sobre el rango de valores, la existencia de ceros múltiples y la facilidad para sumar o comparar.

Representaciones comunes

  • Signo y magnitud: el bit más significativo (MSB) indica el signo (0 = positivo, 1 = negativo) y el resto de los bits expresa la magnitud en binario sin modificar. Es intuitivo pero crea dos ceros (+0 y −0) y complica las sumas porque el hardware debe tratar el signo por separado.
  • Complemento a uno (uno's complement): los números negativos se obtienen invirtiendo cada bit del positivo correspondiente. También genera +0 y −0, y la suma requiere una corrección (suma del acarreo final) para obtener el resultado correcto.
  • Complemento a dos (two's complement): es el método dominante en la mayoría de los procesadores modernos. El negativo de un número se obtiene invirtiendo los bits y sumando uno. Tiene un único cero y permite sumar números negativos sin tratamiento especial; el rango para n bits es −2^(n−1) a 2^(n−1)−1.
  • Representación sesgada (biased/excess): se usa frecuentemente para exponentes en formatos de coma flotante. Consiste en almacenar un valor offsetado (por ejemplo, excess-127) para que el orden numérico coincida con el orden lexicográfico de los códigos.

Comparaciones y propiedades prácticas

Cada esquema presenta ventajas y limitaciones para operaciones aritméticas, comparación y codificación. El complemento a dos simplifica el hardware de sumadores: la misma lógica suma positivos y negativos sin distinguir el signo, y sólo hay un cero. Signo y magnitud, aunque más claro conceptualmente, requiere lógica adicional para manejar signos en suma y resta. Complemento a uno conserva la simetría entre positivo y negativo pero obliga a tratar el acarreo final cuando se realiza una suma.

Ejemplos con 4 bits

Usando 4 bits se ilustra bien la diferencia entre métodos. En signo y magnitud +3 = 0011 y −3 = 1011; hay +0 = 0000 y −0 = 1000. En complemento a uno +3 = 0011 y −3 = 1100; existe también −0 = 1111. En complemento a dos +3 = 0011 y −3 = 1101; sólo aparece 0000 como cero. El rango de valores con 4 bits en complemento a dos es −8 a +7, mientras que en signo y magnitud la magnitud máxima vale 7 y hay representación redundante del cero.

Historia y uso práctico

En las primeras generaciones de ordenadores se exploraron diversos esquemas por razones de coste y simplicidad de diseño; algunos equipos usaron signo y magnitud o complemento a uno. Con el tiempo el complemento a dos se impuso por su eficiencia en la implementación de sumadores y por evitar ceros dobles. Las representaciones sesgadas se estandarizaron en formatos de coma flotante (IEEE 754) para facilitar comparaciones de exponentes.

Precauciones, detección de desbordamiento y aplicaciones

Al operar con números con signo es importante detectar desbordamientos: en complemento a dos la condición de overflow en suma ocurre cuando se suman operandos con el mismo signo y el resultado tiene signo distinto; también puede detectarse con operaciones sobre los acarreos en la posición del signo. Las elecciones de representación afectan compiladores, protocolos binarios y formatos de archivos; por ejemplo, muchos lenguajes y CPUs modernas usan complemento a dos, mientras que ciertos campos (exponentes en coma flotante, algunos ADC) emplean notación sesgada. Para más detalles técnicos y ejemplos adicionales consulte la documentación.

Datos relevantes

  • La fórmula general del rango en complemento a dos para n bits: −2^(n−1) a 2^(n−1)−1.
  • Signo y magnitud y complemento a uno introducen redundancia (+0 y −0), lo que puede complicar comparaciones y normalización.
  • La adopción moderna favorece complemento a dos por su simplicidad en hardware aritmético.