Complemento a dos

El cálculo del complemento a dos es muy sencillo y muy fácil de realizar mediante puertas lógicas, donde reside su utilidad.

Para comenzar los números positivos se quedarán igual en su representación binaria.

Los números negativos deberemos invertir el valor de cada una de sus cifras, es decir realizar el complemento a uno, y sumarle 1 al número obtenido.

Una forma de hallar el opuesto de un número binario positivo en complemento a dos es comenzar por la derecha (el dígito menos significativo), copiando el número original (de derecha a izquierda) hasta encontrar el primer 1, después de haber copiado el 1, se niegan (complementan) los dígitos restantes (es decir, copia un 0 si aparece un 1, o un 1 si aparece un 0).

Este método es mucho más rápido para las personas, pues no utiliza el complemento a uno en su conversión.

100001 ---> 011110 --> 011111 Es equivalente negar todos los dígitos haciendo XOR contra un número con la misma cantidad de dígitos binarios pero lleno de 1s y sumar 1 al resultado.

En la práctica podría explicarse como: Para implementarlo en una rutina escrita en el lenguaje de programación C, asumiendo que 'x' es la cantidad a la que se le calculará el complemento a 2, 'n' el número máximo de bits de las cantidades representadas e 'y' es la variable en donde se almacenará el resultado.

El cálculo podría escribirse como: Si 'n' no va a cambiar a lo largo del programa, puede sustituirse como una constante y con ello acelerar el cálculo y disminuir los recursos de cómputo consumidos.

Por ejemplo, si todos los cálculos son en 8 bits, la rutina anterior podría simplificarse a: Su utilidad principal se encuentra 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.