El código inverso ( complemento de unos en inglés ) es un método de matemáticas computacionales que le permite restar un número de otro usando solo la operación de suma en números naturales . Anteriormente, el método se usaba en calculadoras mecánicas ( aritmómetros ). Muchas de las primeras computadoras, incluidas la CDC 6600 , LINC , PDP-1 y UNIVAC 1107 , usaban un código inverso. La mayoría de las computadoras modernas usan el complemento a dos .
El código binario inverso de n bits de un entero positivo consta de un código de signo de un bit (dígito binario 0) seguido de una representación binaria de ( n −1) bits del módulo del número (el código inverso de un número positivo es lo mismo que el código directo).
Ejemplo. La representación binaria del número 5 es 101. El código binario de 10 bits para el número +5 es 00 0000 0101 .
El código binario inverso de n bits de un entero negativo consta de un código de signo de un bit (dígito binario 1) seguido de un número binario de ( n −1) bits , que es la representación de ( n −1) bits invertida de el módulo del número. Cabe señalar que para cambiar el signo de un número, basta con invertir todos sus dígitos, independientemente de si se trata de un dígito de signo o de información.
Ejemplo. La representación binaria del número 5 es 101, su representación binaria de 10 bits es 00 0000 0101 . El código binario recíproco de 10 bits de -5 es 11 1111 1010 .
La operación de inversión también se usa para convertir un número negativo en uno positivo. Estos códigos de retorno son convenientes de usar. Como desventaja, cabe señalar que en los códigos binarios inversos hay dos códigos para el número 0: "cero positivo" 00 0000 0000 y " cero negativo " 11 1111 1111 (se dan códigos inversos de 10 bits). Esto conduce a alguna complicación de la operación de suma. Por lo tanto, en el futuro, cambiamos a códigos adicionales para escribir enteros con signo.
Un código inverso de N bits le permite representar números de −(2 N−1 −1) a 2 N−1 −1, y un código adicional - de −2 N−1 a 2 N−1 −1.
El método del complemento se usa principalmente en el sistema numérico binario (base 2 10 ). En el sistema binario, el complemento a uno ( código inverso ) se obtiene de manera muy simple invirtiendo cada bit (reemplazando "0" con "1" y viceversa). El complemento a dos ( complemento a 2 ) se puede obtener a partir del complemento a uno (código inverso) sumando uno al dígito menos significativo (bit). [1] Por ejemplo, considere la resta de dos números enteros: 100 10 − 22 10 . Cada número se escribe como un código de 8 bits, mientras que el más significativo, el octavo bit, se considera un signo.
0110 0100 2 ( x igual al decimal 100 10 ) − 0001 0110 2 ( y igual al decimal 22 10 )en el método de la suma se convierte en la suma:
0110 0100 2 ( x ) + 1110 1001 2 (primer complemento y ) + 1 2 (para obtener el segundo complemento) ————————————— 1 0100 1110 2Después de descartar el noveno bit (el más significativo, a la izquierda), la respuesta es: 0100 1110 2 (este es un número positivo igual al decimal 78 10 ).