Ciao a tutti, posto questo esercizio che mi da parecchi grattacapi in quanto non ne capisco a pieno la logica.
Il testo è:
Si progetti e si sintetizzi una rete logica che:
1) riceve in input un numero X intero a 3 bit;
2) restituisce in output un numero Y intero a 2 bit senza segno che rappresenta il valore assoluto di X con il minimo errore assoluto.
Per la costruzione della tabella di verità ho operato come segue:
in cui:
1) Le prime 4 righe della tabella le ho ricopiate in quanto, essendo il primo bit del numero pari a 0, ciò significa che il numero espresso è positivo, quindi non era necessario fare nessuna variazione.
2) La ultime 4 righe le ho ottenute ripetendo, al contrario, la codifica binaria per rappresentare un numero intero positivo in uno negativo. Il procedimento che conoscono per rappresentare un qualsiasi numero positivo in uno negativo in binario è, nel caso in cui volessi rappresentare ad esempio -5 in base 2:
$ (5)_10 -> (101)_2 -> (0101)_2 -> (1010)_2 -> (1010)_2+(0001)_2=(1011)_2 -> (-5)_2 $
in cui il primo bit è il bit di segno.
Ho ripetuto sostanzialmente questa procedura al contrario, quindi ad esempio, nel caso della riga 5:
$ (100)_2 -(001)_2 = (011)_2 $
in cui essendo il primo bit di segno pari a 0 ho subito terminato.
Nel caso della riga 6 invece:
$ (101)_2 -(001)_2 = (100)_2 -> (011)_2 $
in cui oltre al primo passaggio effettuato come in riga 5, ovvero la sottrazione, ho anche invertito i bit analogamente a quanto fatto per la rappresentazione binaria di un numero negativo.
Il procedimento però non mi convince per niente, potreste dirmi se è corretto oppure dove sta l'errore?
Grazie a tutti.