En este post mostraremos como construir un sumador-restador de 3 bits usando complemento a uno, en el proceso de construcción del mismo encontré muchas formas de hacerlo, la que planteo es algo distinta a la mayoría que vi en otros sitios ya que las mismas muestran como hacerlo usando complemento a dos, por mala suerte en el momento de realizar el montaje no tenia lo necesario para hacerlo de esa forma, así que decidí realizar un montaje para el cual pudiese usar los materiales que tenia a la mano, el resultado fue hacerlo con complemento a uno ya que con esto evitaría sumar un uno (1) al complemento del resultado cuando este fuese negativo.

Lo primero es realizar el análisis del procedimiento que vamos a realizar en otras palabras tener claro en que consiste realizar una resta usando complemento a uno, para realizar esta operación se debe calcular el complemento a uno del sustraendo sumarlo al minuendo y al resultado obtenido sumarle uno (1), mas detalles para realizar operaciones aritméticas binarias pueden consultarlo aquí. Para este montaje hay que tener claro que el cuarto bit siempre sera cero (0) esto debido a que para el resultado es necesario tomar cuatro (4) bits en caso que la operación sea una suma, así que en nuestro resultado el bit que determinara el signo sera el 5 y el de acarreo sera el sexto, en otras palabras sumaremos o restaremos dos números de cuatro bits donde su bit mas significativo siempre sera cero (0). Así las cosas para determinar el quinto (5) y sexto (6) bit del resultado he implementado un semi-sumador que toma como entrada el bit de acarreo de la suma de cuatro (4) bits y el valor de M, uno (1) si es una resta, cero (0) si es una suma de esta manera con el quinto (5) bit que se el resultado del XOR determinamos si el resultado es positivo (0) o negativo (1) y de ser necesario lo complementamos.

El único inconveniente que pueden encontrar en el funcionamiento de este montaje es que el cero puede tomar dos valores consecuencia de usar complemento a uno, por tanto en una resta con resultado cero el signo de este sera negativo, lo que matemáticamente es un error, sin mas he aquí el diagrama del circuito.

 En el mismo A1 – A3 y B1- B3 son las entradas, M determina la operación a realizar cero (0) suma, uno (1) resta  y el resultado se muestra en los diodos S1- S4. Si deseas mostrar las salida en dos 7 segmentos puedes consultar como hacerlo aquí.