complemento a dos


El complemento a dos es una operación matemática con números binarios y es un ejemplo de un complemento a la base . Se utiliza en computación como un método de representación de números con signo .

El complemento a dos de un número de N bits se define como su complemento con respecto a 2 N ; la suma de un número y su complemento a dos es 2 N . Por ejemplo, para el número de tres bits 011 2 , el complemento a dos es 101 2 , porque 011 2 + 101 2 = 1000 2 = 8 10 que es igual a 2 3 . El complemento a dos se calcula invirtiendo los bits y sumando uno.

El complemento a dos es el método más común para representar enteros con signo en computadoras, [1] y, de manera más general, valores binarios de punto fijo . En este esquema, si el número binario 011 2 codifica el entero con signo 3 10 , entonces su complemento a dos, 101 2 , codifica el inverso: −3 10 . En otras palabras, el signo de la mayoría de los números enteros (todos menos uno) se puede invertir en este esquema tomando el complemento a dos de su representación binaria. [2] Las tablas de la derecha ilustran esta propiedad.

En comparación con otros sistemas para representar números con signo ( p. ej., complemento a uno ), el complemento a dos tiene la ventaja de que las operaciones aritméticas fundamentales de suma , resta y multiplicación son idénticas a las de los números binarios sin signo (siempre que las entradas se representen en el mismo número de bits que la salida, y cualquier desbordamiento más allá de esos bits se descarta del resultado). Esta propiedad hace que el sistema sea más simple de implementar, especialmente para aritmética de mayor precisión. A diferencia de los sistemas de complemento a uno, el complemento a dos no tiene representación para cero negativo y, por lo tanto, no sufre las dificultades asociadas.

Convenientemente, otra forma de encontrar el complemento a dos de un número es tomar su complemento a unos y sumar uno: la suma de un número y su complemento a unos es todos '1' bits, o 2 N − 1 ; y por definición, la suma de un número y su complemento a dos es 2 N .

El método de los complementos se había utilizado durante mucho tiempo para realizar restas en máquinas sumadoras decimales y calculadoras mecánicas . John von Neumann sugirió el uso de la representación binaria en complemento a dos en su primer borrador de un informe de 1945 sobre la propuesta de EDVAC para una computadora digital de programa almacenado electrónico. [3] El EDSAC de 1949 , que se inspiró en el Primer Borrador , utilizó la representación en complemento a dos de los números binarios.