La sustracción de dos números binarios puede llevarse a cabo tomando el complemento del sustraendo y agregando al minuendo. Por este método, la operación de sustracción llega a ser una operación de división que requiere sumadores completos para su implementación en máquina. Es posible implementar la sustracción con circuitos lógicos en una forma directa, como se hace con lápiz y papel. Por este método cada bit sustraendo del número se sustrae de su bit minuendo correspondiente significativo para formar un bit de diferencia. Si el bit minuendo es menor que el bit sustraendo se toma 1 de la siguiente posición significativa. El hecho que se ha tomado un 1 debe llevarse al siguiente par más alto de bit mediante una señal binaria que llega de afuera (salida) de una etapa dada y va a (entrada) la siguiente etapa más alta. En forma precisa así como hay medios sumadores y sumadores completos, hay medio restadores y restadores completos.

 

Por tanto :


Para una representación de n bits si tomo 1 bit para signo, tengo por tanto (n-1) para el rango que será. Por tanto existe un límite al tamaño de los valores que pueden ser representados, pudiéndose dar el caso de situaciones de desbordamiento ( overflow ) si el número obtenido no está previsto dentro del rango establecido.

Por eso muchos de los circuitos sumadores llevan circuitería adicional para detectar situaciones de desbordamiento e identificar que el dato obtenido no es correcto.

Por ejemplo, si estamos utilizando n = 4 bits el rango será [-8,7] entonces en las siguientes suma/resta en C2 tenemos que:

 



Reglas básicas para detectar el desbordamiento :

Si se suman dos números positivos cuyo resultado excede del rango se produce un número que " parece ser negativo ", por tener el primer bit igual a 1.

Si se suman dos números negativos cuyo resultado excede del rango se produce un número que " parece ser positivo " por tener el primer bit igual a cero.

MEDIO RESTADOR

Un medio restador es un circuito combinacional que sustrae dos bits y produce su diferencia. También tiene la salida para especificar si se ha tomado un 1. Se designa el bit minuendo por x y el bit sustraendo mediante y. Para llevar a cabo x – y, tienen que verificarse las magnitudes relativas de x y y. Si x >= y, se tienen tres posibilidades; 0 - 0 = 0, 1 – 0 = 1 y, 1 - 1 = 0. El resultado se denomina bit de diferencia. Si x < y, tenemos 0 – 1 y es necesario tomar un 1 de la siguiente etapa más alta. El 1 que se toma de la siguiente etapa más alta añade dos al bit minuendo, de la misma forma que en el sistema decimal lo que se toma añade 10 a un dígito minuendo. Con el minuendo igual a 2, la diferencia llega a ser 2 – 1 = 1. El medio restador requiere dos salidas. Una salida genera la diferencia y se denotará por el símbolo D. La segunda salida, denotada B para lo que se toma, genera la señal binaria que informa a la siguiente etapa que se ha tomado un 1. La tabla de verdad para las relaciones de entrada-salida de un medio restador ahora puede derivarse como sigue:


x y | B D
0 0 | 0 0
0 1 | 1 1
1 0 | 0 1
1 1 | 0 0


La salida que toma B es un 0 en tanto que x >= y. Es un 1 para x = 0 y y = 1. La salida D es el resultado de la operación aritmética 2B + x - y.

Las funciones booleanas para las dos salidas del medio restador se derivan de manera directa de la tabla de verdad:

D = x’y + xy’
B = x’y

Es interesante observar que la lógica para D es exactamente la misma que la lógica para la salida S en el medio sumador.

El logigrama del restador es el siguiente:

 



Su circuito topológico es el siguiente:

 



RESTADOR COMPLETO

Un restador completo es un circuito combinacional que lleva a cabo una sustracción entre dos bits, tomando en cuenta en un 1 se ha tomado por una etapa significativa más baja. Este circuito tiene tres entrada y dos salidas. Las tres entradas x, y y z, denotan al minuendo, sustraendo y a la toma previa, respectivamente. Las dos salidas, D y B, representan la diferencia y la salida tomada, respectivamente. La tabla de verdad para el circuito es como sigue:

x y z | B D
0 0 0 | 0 0
0 0 1 | 1 1
0 1 0 | 1 1
0 1 1 | 1 0
1 0 0 | 0 1
1 0 1 | 0 0
1 1 0 | 0 0
1 1 1 | 1 1

Los ocho renglones bajo las variables de entrada designan todas las combinaciones posibles de 1 y 0 que pueden tomar las variables binarias. Los 1 y 0 para las variables de salida están determinados por la sustracción de x – y – z. Las combinaciones que tienen salida de toma z = 0 se reducen a las mismas cuatro condiciones del medio sumador. Para x = 0, y = 0 y z = 1, tiene que tomarse un 1 de la siguiente etapa, lo cual hace B = 1 y añade 2 a x. Ya que 2 – 0 – 1, D = 1. Para x = 0 y yz = 11, necesita tomarse otra vez, haciendo B = 1 y x = 2. Ya que 2 – 1 – 1 = 0, D = 0. Para x = 1 y yz = 01, se tiene x – y – z = 0, lo cual hace B = 0 y D = 0. Por último, para x = 1, y = 1, z = 1, tiene que tomarse 1, haciendo B = 1 y x = 3 y, 3 –1 – 1 = 1, haciendo D = 1.


Los mapas de Karnaugh quedan de la siguiente manera:

 

El circuito lógico implementado con compuertas es el siguiente:

 



El circuito topológico del restador completo es el siguiente: