Supponiamo di voler sottrarre tra loro le rappresentazioni binarie di due numeri naturali. Se tali rappresentazioni hanno n+2 bit abbiamo una situazione di questo tipo:
A A A ....... A A - n+1 n n-1 1 0 B B B ....... B B = n+1 n n-1 1 0 _____________________________________ D D D ....... D D n+1 n n-1 1 0Consideriamo questa operazione solo per un bit, ad esempio l'n-esimo. Nell'effettuare la sottrazione tra A e B bisogna tenere conto dell'eventuale prestito durante la sottrazione n n tra le n-1-esime cifre oltre a tenere conto se tale operazione comporta un prestito sulle n+1-esime cifre. Si ottiene la seguente tavola di verita':
A B P | D P n n n-1 | n n _______________________________________ 0 0 0 | 0 0 0 1 0 | 1 1 1 0 0 | 1 0 1 1 0 | 0 0 | 0 0 1 | 1 1 0 1 1 | 0 1 1 0 1 | 0 0 1 1 1 | 1 1 |Semplifichiamo queste due funzioni considerando le rispettive mappe di Karnaugh:
Si ottiene:
_ _ _ _ _ _ D = A B P + A B P + A B P + A B P n n n n-1 n n n-1 n n n-1 n n n-1 _ _ P = A B + A P + B P n n n n n-1 n n-1Il circuito che ci permette di sottrarre tra loro le n-esime cifre sara' quindi il seguente:
Il modulo cosi' ottenuto puo' essere utilizzato per costruire sottrattori per parole binarie
di qualunque lunghezza. Ad esempio, per ottenere un sottrattore a 4 bit si potranno utilizzare
4 di questi moduli collegati tra loro come segue:
Qualora nell'uscita P3 si dovesse avere un 1 significa che B > A cioe' che l'operazione non ha
senso nell'insieme dei numeri naturali in quanto una tale sottrazione darebbe luogo ad un numero
negativo. Pertanto la presenza del bit 1 in questo piedino rappresenta per il sottrattore
realizzato una condizione di errore.