ok amigo mio, aqui estan los diagramas de cada salida.....
lo hice separados para no enredar tanto el diagrama, pero obviamente las entradas de la "A" a la "E" son las mismas desde donde sacas para cada dibujo..
lo otro, la entrada A corresponde al bit mas significativo de tu numero, y carrie in al menos significativo....
y sus homologos negados, estan expresados con una `, asi A se transformadorrma en A`.
y aqui te dejo las tablas de verdad, y el programa para que puedas abrirlas........
programa
tablas:
ahora, con respecto a tu pregunta, la verdad desconozco si hay alguna formula para esto, yo solo lo hice por el metodo sencillo:
ya que me dijiste que usas 4 bits mas carrie, osea 5 bits. eso me dice que quires encontrar los negativos de los numeros del 0 al 31.
bueno, si por ejemplo quiero encontrar el negativo del numero 6 , tomo el 6, que en binario seria 00110 y empiezo de derecha a izquierda buscando hasta encontrar el primer 1. y despues de haber copiado identico todo antes del uno, lo que hay despues del uno, cambia. entonces de derecha a izquierda primero esta el 0, lo dejamos identico, luego viene un 1, que tambien lo dejamos identico, y de ahi para adelante se niegan todos los numeors por lo que el 6 negado me queda: 11010. entiendes?.....esa logica se sigue con todos los numeros........
bueno amigo, espero haberte ayudado, y cualquier consulta que tengas, no dudes en preguntarme....saludos