El complemento de 1 de un número binario es otro número binario pero cambiando los ceros por unos y los unos por ceros, es decir, transformar el bit 0 a 1 y el 1 bit a 0.

Ejemplos:

Supongamos los siguientes números de 4 bits:

  • Complemento a 1 de 7 (0111) es 8 (1000)
  • Complemento a 1 de 12 (1100) es 3 (0011)

El complemento a 2 se calcula sumando una unidad al valor decimal que resulta al calcular el complemento a 1.

Ejemplos:

  • El complemento a 2 de 7 (0111) es 9 (1001) (8+1)
  • El complemento a 2 de 12 (1100) es 4 (0100) (3+1)

Fíjate que para calcular el complemento a 2 de un número, lo primero que debes realizar es calcular el complemento a 1 y luego 1.

La principal diferencia entre el complemento a 1 y el complemento a 2 es que el complemento a 1 tiene dos representaciones para el cero:

  • +0 = 00000000 (cero positivo)
  • -0 = 11111111 (cero negativo)

Mientras que en el complemento a 2, sólo hay una representación para el valor cero 00000000 (+0) porque si añadimos 1 a 11111111 (-1), obtenemos 00000000 (+0) que es lo mismo que cero positivo. Esta es la principal razón por lo que se utiliza el complemento a 2 en vez del complemento a 1.

Muchos de los primeros ordenadores, incluyendo el CDC 6600, el LINC, el PDP-1 y el UNIVAC 1107, usaron la notación de complemento a uno. Los sucesores del CDC 6600 continuaron usando el complemento a uno hasta finales de la década de los 80, y los descendientes de UNIVAC 1107 (la serie UNIVAC 1100/2200) todavía lo hacen, pero la mayoría de los ordenadores modernos usan el complemento a dos.

El complemento a dos se utiliza principalmente en las operaciones matemáticas con números binarios. En particular, la resta de números binarios se facilita enormemente utilizando el complemento a dos: la resta de dos números binarios puede obtenerse sumando al minuendo el complemento a dos del sustraendo. Se utiliza porque la unidad aritmético-lógica no resta números binarios, suma binarios negativos, por eso esta conversión al negativo.

Fuente: Complemento a uno (Wikipedia)