Requisito previo: representación de números binarios negativos
complemento a 1 de un número binario es otro número binario que se obtiene alternando todos los bits que contiene, es decir, transformando el bit 0 en 1 y el bit 1 en 0. Ejemplos:
Let numbers be stored using 4 bits 1's complement of 7 (0111) is 8 (1000) 1's complement of 12 (1100) is 3 (0011)>
complemento a 2 de un número binario es 1 sumado al complemento a 1 del número binario. Ejemplos:
Let numbers be stored using 4 bits 2's complement of 7 (0111) is 9 (1001) 2's complement of 12 (1100) is 4 (0100)>
Estas representaciones se utilizan para números con signo.
El diferencia principal entre el complemento a 1 y complemento a 2 es que el complemento a 1 tiene dos representaciones de 0 (cero) - 00000000, que es cero positivo (+0), y 11111111, que es cero negativo (-0); mientras que en el complemento a 2, solo hay una representación para cero: 00000000 (0), porque si sumamos 1 a 11111111 (-1), obtenemos 100000000, que tiene nueve bits de longitud. Dado que sólo se permiten ocho bits, el bit más a la izquierda se descarta (o se desborda), dejando 00000000 (-0), que es lo mismo que un cero positivo. Ésta es la razón por la que generalmente se utiliza el complemento a 2.
Otra diferencia es que al sumar números usando el complemento a 1, primero hacemos una suma binaria y luego agregamos un valor de acarreo final. Pero el complemento a 2 tiene solo un valor para cero y no requiere valores de acarreo.
El rango del complemento a 1 para un número de n bits es de -2n-1-1 a 2n-1-1 mientras que el rango del complemento a 2 para n bits es de -2n-1a 2n-1-1.
botón j
Hay 2n-1números válidos en complemento a 1 y 2nortenúmeros válidos en complemento a 2.
Diferencia entre la representación del complemento a 1 y la representación del complemento a 2 en forma tabular:
| Criterios | Complemento a 1 | Complemento a 2 |
| Definición | El complemento a 1 de un número binario se obtiene invirtiendo todos sus bits. | El complemento a 2 de un número binario se obtiene sumando 1 al complemento a 1 del número. |
| Rango de valores que se pueden representar con n bits | De -2^(n-1) + 1 a 2^(n-1) – 1 | De -2^(n-1) a 2^(n-1) – 1 |
| Número de representaciones del cero | Se puede representar de dos maneras (todos 0 y todos 1). | Se puede representar de una sola manera (todos 0). |
| Suma de números positivos y negativos. | Igual que la suma binaria sin signo. | Igual que la suma binaria sin signo. |
| Resta de números | Resta el número menor del mayor y luego agrega un bit de signo al resultado. | Suma el número negativo al positivo usando la suma binaria. |