# Como corregir el resultado de una resta?



## Vichente (May 26, 2007)

Buenas gente del foro, le comento mi problema. Estoy haciendo un sumador/restador de 4 bits donde se sumen números del 0-9 utilizando un sumador total 74LS83, pero el tema es el siguiente. Así como entran los números del 0-9 en BCD deseo obtener la suma y la resta en forma BCD para luego utilizar un decodificador BCD-7segmentos. Además aclaro que el resultado se debe ver en 2 display separados por ejemplo para cuando se deba mostrar el resultado de 9+9 = 18.

Con la suma no encuentro muchos problemas en corregir el resultado para que me muestre el resultado en BCD. La ecuación lógica aplicada al resultado es el siguiente:

carry + 4 bit (3 bit + 2 bit)

Si el resultado es "1" entonces se pasa el resultado a un nuevo sumador que le sume 0110 (6) y utilizar el primer carry para colocar un "1" en el display de las decenas y el resultado corregido en el segundo display.

El problema viene con la resta complmento a 2, porque todavía no logro encontrar como corregir el resultado para todo caso posible que exista. Como por ejemplo

7-8 = -1
9-3 = 6
9-0 = 9
0-9= -9
9-1= 8

Donde espero que el signo "-" si el resultado es negativo se muestre en el display de las decenas.

Bueno creo que fui muy específico y un poco largo en la explicación. Espero que me puedan dar una mano para poder solucionar esto.

Saludos!


----------



## Vichente (May 26, 2007)

Estaba pensando en que lo mejor que puedo hacer es que mi sumador/restador sólo pueda sumar como máximo 8+8 porque de esa forma sólo con las condición

4to bit y no hay acarreo

logro que me haga complemento a 2 el resultado cuando se requiera, pero seguiría una única situación que cause problema y es cuando resto

8-0 = 8

Pero creo que lo podría arreglar viendo cuando resto a un número el 0

No se que les parece?


----------



## Roosevelt (Abr 18, 2008)

hola compañeros, lo que puedes usar para que en la resta, por ejemplo 3 -9 = -6,,,,,, para que aparecas el negativo debes de poner un 74ls85 es un comparador de 4 bit, y este mismo compara A>B, A=B, A<B, y pues el 74ls85 que este solo alimentado solo cuando selecciones la opcion de restar,,, espere y esto te aya servido de algo,,, 

Oye me podrias pasar tu circuito, es que en mi escuela me encargaron hacer un sumador restador de 4bit y tambien con 2 display de 7 segmentos, y la verdad que no me sale, solo me funciona con un display,pero ya cuando quiero sumar 9+9= 18 no me funciona, no se como conectar los 2 display con el 74ls83 para corregir el error y me marque un 18 en el display,,.

te agradeceria mucho si me puedes subir una foto de tu circuito aki en el foro, por favor,, que si estoy algo apurado, que tengo que entregar el circuito en 3 dias, 

gracias


----------



## SEG77 (May 12, 2008)

yo lo haria en BDC exceso 3 lo codificas en la entrada y decodificas en la salida, la resta en BCD es muy complicada


----------



## digitalis (May 13, 2008)

Vichente, para restar en complemento a 2 estás utilizando XOR o inversores?


----------



## SEG77 (May 13, 2008)

si lo haces en XS3, ej: 6 -9 , *6 en XS3 *0110+0011=*1001* , *9 en XS3 *1001+0011=*1100*, el complemento a la base de 9 sera *0100*, ===> *1001 + 0100 =1101 *este resultado lo complementas y te da *0011 lo cual es 3 y ya lo tienes en BCD *queda que pongas un comparador a la entrada para determinar el signo. compruebalo con otras combinaciones ej= 7-8,  *7 en XS3 *0111+0011=*1010*, *8 en XS3 *1000+0011=*1011*, el complemento de  8 sera *0101*, entonces *1010+0101=1111 *este resultado lo complementas y te da *0001 = 1 en BCD *el signo lo dara el comparador.
si tienes 5-2,  *5 en XS3 *0101+0011=*1000*, *2 en XS3 *0010+0011=*0101*, el complemento de 2 sera *1011*, entonces *1000+1011= 1 0011*, este *1* de carry sera tu bandera para *NO* complementar el resultado  y asi la resta te dara 0011, 3 en BCD el signo lo dara el comparador.
espero te sirva de algo


----------



## BOROCHO (May 16, 2008)

ola soy nuevo en esto pero bueno espero ayudarte yo tambien estoy haciedno algo como lo tuyo y tambien eh tenido muchos problemas con lo de la resta en como expresar numeros negativos pero pues me puse a checar muchas paginas aqui y pues encontre algo que te puede servir en este lick te explica como se hace la resta con complemente 2 y uno...

http://www.iuma.ulpgc.es/users/jrse...ownload/transparencias/aritmetica_binaria.pdf

checalo esta muy completo

espero averte ayudado sale


----------

