Pagina 1 di 1

Tabella di verità

MessaggioInviato: 22/06/2019, 15:20
da Walter97lor
Ciao a tutti,
posto una soluzione di un esercizio che chiede di trovare la tabella di verità relativa ad una specie di moltiplicatore che:
- riceve in input due numeri $a$, $b$ a 2 bit ciascuno, dove il primo bit è $a1$ e il secondo bit è $a2$ ( analogamente per il numero $b$).
- restituisce in output un numero floating point relativo alla divisione $a/b$ con:
---> $1$ bit di segno, $0$ bit di mantissa e $2$ bit di esponente rappresentato in eccesso.
Una rappresentazione schematica è:
Immagine
La mia soluzione è:
Immagine
in cui non riesco a capire come utilizzare l'informazione sull'esponente.
So già che un numero in virgola mobile è rappresentato come:
$ 1,mantissa * 2^(exp-ec.) $
in cui l'eccesso è calcolabile con:
$ ec. = 2^(n-1)-1 = 2^(2-1)-1 = 1 $
Spero possiate aiutarmi, grazie dell'attenzione.
Se avete bisogno di ulteriori charimenti sono più che disponibile a darveli.

Re: Tabella di verità

MessaggioInviato: 22/06/2019, 18:59
da apatriarca
I numeri che puoi rappresentare in questa notazione sono uguali a \( (-1)^s\,2^{e-k} \). In questa notazione è impossibile rappresentare lo zero. La convenzione di solito utilizzata (anche nella tua tabella della verità) è quella di riservare \(e = 0\) per questo caso. L'eccesso è di solito scelto nel modo da te mostrato, per cui \(k=1\) e i possibili esponenti (in decimale) sono quindi \((e - k) \in \{-1, 0, 1, 2\}\). Siccome i tuoi valori di ingresso sono compresi in \(\{-2, -1, 0, 1\},\) l'esponente \(2\) non verrebbe tuttavia mai utilizzato. Viceversa, il valore \(e - k = -1\) è importante, ma da te riservato per lo zero. Un valore di eccesso uguale a \(2\) sarebbe quindi in realtà più utile in questo circuito. Soprattutto se non vuoi aggiungere il supporto per valori infiniti.

Trovo insomma che il tuo esercizio è un po' ambiguo essendoci alcune possibile scelte alternative per la tua rappresentazione. Usando le convenzioni usate nella tua tabella, direi che la penultima riga è sbagliata in quando l'esponente di \(2\) dovrebbe essere \(10_b.\) Usando il tuo eccesso, \(0.5\) e \(-0.5\) dovrebbero essere arrotondati a \(0\) (quindi esponente uguale a \(00_b\). Siccome \(11_b\) non è utilizzato nella tua tabella, direi che puoi usarlo per i casi infiniti segnati come N.D. almeno..

Re: Tabella di verità

MessaggioInviato: 23/06/2019, 09:20
da Walter97lor
Ciao apatriarca, ti rigrazio per aver risposto in maniera così precisa. Purtroppo il testo dell'esercizio era così specificato.
Non mi è chiarissimo, però, il fatto che i valori $0.5$ e $-0.5$ debbano essere arrotondati a zero.
Grazie ancora per la disponibilità.

Re: Tabella di verità

MessaggioInviato: 24/06/2019, 09:20
da apatriarca
\(\pm O.5\) non è rappresentabile usando le convenzioni scelte, per cui deve essere arrotondato al numero rappresentabile più vicino. Le scelte sono 0 o 1 e a seconda del tipo di arrotondamento scelto la risposta può essere diversa. L'arrotondamento usato di default nei computer è chiamato round to even e porterebbe alla scelta dello zero.

Re: Tabella di verità

MessaggioInviato: 24/06/2019, 15:40
da Walter97lor
Grazie mille ancora una volta, ora mi è più chiaro.