¿Por qué es que la adición del complemento a 2 es un método eficiente para restar? ¿Esto simplifica el circuito?
¿Por qué es que la adición del complemento a 2 es un método eficiente para restar? ¿Esto simplifica el circuito?
Como lo señaló Olin en su comentario, A - B y A + (-B) son lo mismo, pero tenga en cuenta que este último en realidad usa la suma.
Así que con el complemento de 2, solo necesita un tipo de circuito para realizar la suma / resta, a saber, un sumador (en lugar de un sumador y un restador separado, más el circuito para alternar el bus de datos entre los dos).
Tomar el complemento de dos de un número implica primero tomar el complemento de 1 (alternar todos los bits, una operación lógica trivial) y luego agregar uno. Este último parece requerir un sumador separado para realizar ese paso antes de agregar los dos operandos, pero podemos solucionarlo con un solo circuito de sumador configurando el avance del primer bit del sumador al hacer una resta, y bajo cuando haciendo adicion.
An example: 5 - 3
0101
- 0011
======
0010
same as:
0101
+ 1100 (1's complement of 0011)
+ 1 (carry-in)
======
0010
Just the opposite: 3 - 5
0011
- 0101
======
1110
same as:
0011
+ 1010 (1's complement of 0101)
+ 1 (carry-in)
======
1110
Lea otras preguntas en las etiquetas digital-logic math