Hola, no se si es porque hoy estoy espesito o que... pero no se me ocurre como podrías expresar el resultado de una resta de dos numeros de 4 bits en tres bits, seguro que se puede hacer? yo creo que no.... o sino en tu caso, imagina que en la parte alta tienes 0 y en la parte baja tienes 15 e intenta restarlo, si consigues expresar ese resultado en tres bits y uno para el signo dime como lo haces.....

en todo caso lo que seguro se puede hacer seria expresar el resultado en 4 bits y en todo caso un quinto bit o bit de carry para expresar el signo.
Pero si lo que quieres es hacer una conversión de binario a bcd, olvidate de bits y rollos, que estás en c, por ejemplo para saber si el numero es menor de cero, pones un if....
if (resultado < 0 )
Con esto identificas si el resultado es menor de cero, para poner el signo en el display.
Luego hallas el valor absoluto del numero con la funcion abs() (sale documentada en la ayuda), y luego ya le harás la conversión de bcd a binario al resultado que devuelve la funcion abs(c) para sacarlo por los dos displays.
Creo que si buscas por el foro encontrarás alguna rutina para pasar de binario a bcd, yo ahora mismo no dispongo de ninguna.
Un saludo.
PD: No se si me pillas, si normalmente me cuesta explicarme y hacerme entender, imaginate cuando estoy de resaca.... jejejej


