Esercizio 7virgola mobile a 16 bit, codifica, decodifica e somma (temi d'esame luglio 2020, febbraio 2025 e settembre 2026)
In questa pagina 5
Testo (temi d'esame luglio 2020 problema 2; febbraio 2025 problema P1; settembre 2026 problema P8). Una unità aritmetica a virgola mobile a 16 bit ha: bit 15 = segno; bit 14-11 = esponente (4 bit, offset 7); bit 10-0 = mantissa (11 bit, con implicito).
(a) Si deve eseguire , arrotondando le parti frazionarie quando necessario: rappresentazione del primo addendo, del secondo, del risultato ed errore. (b) Si determini il valore reale dei dati (a), (b), (c) e la rappresentazione binaria della somma . (c) Si scriva la rappresentazione di con arrotondamento della mantissa e si indichi l'errore assoluto.
Teoria usata: Virgola mobile - formato IEEE 754 e formato a 16 bitIn virgola mobile un numero è $(-1)^S,(1+F),2^{E-B}$: segno $S$, mantissa frazionaria $F$ (con l'$1$ iniziale implicito) ed esponente $E$ con offset $B$. La precisione relativa è costante ($\varepsilon=2^{-n_F}$) e cambia la spaziatura tra i valori; in $n$ bit si rappresentano gli stessi $2^n$ numeri della virgola fissa, ma distribuiti diversamente. Nello standard IEEE 754 a 32 bit: 1 bit di segno, 8 di esponente ($B=127$), 23 di mantissa. All'esame compare un formato a 16 bit (1+4+11, $B=7$): codifica, decodifica e somma con allineamento degli esponenti. Il campo esponente tutto a 0 con mantissa nulla è lo zero.Virgola mobile - formato IEEE 754 e formato a 16 bit →, Numeri binari e complemento a dueI processori lavorano con un numero fisso di bit $n$. I naturali vanno da $0$ a $2^n-1$; per i negativi si usa il complemento a due: $C_2(N)=2^n-N=\overline N+1$ (si invertono tutti i bit e si somma 1). Con $n$ bit rappresenta $-2^{n-1}\le N\le2^{n-1}-1$, ha un solo zero e unifica somma e sottrazione. Quando il risultato esce dall'intervallo c'è overflow; gli overflow intermedi si compensano se il risultato finale è rappresentabile. La lunghezza di parola non è l'accuratezza.Numeri binari e complemento a due →.
Richiami
con ( = mantissa a 11 bit). La codifica: , , . Gli esponenti validi sono (0 e 15 sono riservati): .
(a)
- : , ; . Parola: . È esatto (la mantissa ha solo 9 cifre significative).
- : , ; . Parola: . Esatto.
- Somma. Mantisse con 1 implicito, in unità (cioè ): ; . Gli esponenti sono 7 e 6: si allinea il secondo spostando la sua mantissa a destra di 1 posto: (nessun bit perso: 2668 è pari). Segni opposti, quindi si sottrae: . Poiché la mantissa è già normalizzata (tra 1 e 2) e l'esponente resta . . Risultato: , valore , esatto: errore nullo.
(b) Decodifica e somma
- (a) : ; ; , : .
- (b) : ; ; stessa mantissa: .
- (c) : ; , : .
Somma . Si allinea l'addendo con esponente minore (, ) a quello di (): spostamento di 4 posti a destra. Mantisse con 1 implicito: : ; : . (si perdono i 4 bit bassi: : troncamento o arrotondamento danno lo stesso 179). Segni opposti: , in quindi già normalizzato; esponente . . Risultato: , cioè (il valore esatto è : errore , dovuto ai bit persi nell'allineamento).
(c)
. (): , . . Parola: . Valore rappresentato: ; errore assoluto (precisamente ).
Errori comuni
- Dimenticare l' implicito nella decodifica e nelle somme tra mantisse.
- Usare l'esponente come numero senza sottrarre l'offset (7).
- Sommare le mantisse prima di avere uguagliato gli esponenti.
- Non verificare la normalizzazione dopo la somma (mantissa → shift a destra e ; mantissa → shift a sinistra e ).
Versione ripasso
Testo. Virgola mobile 16 bit (, offset 7): ; decodifica di tre parole e somma; codifica di (luglio 2020, febbraio 2025, settembre 2026).
- Formule: ; (Virgola mobile - formato IEEE 754 e formato a 16 bitIn virgola mobile un numero è $(-1)^S,(1+F),2^{E-B}$: segno $S$, mantissa frazionaria $F$ (con l'$1$ iniziale implicito) ed esponente $E$ con offset $B$. La precisione relativa è costante ($\varepsilon=2^{-n_F}$) e cambia la spaziatura tra i valori; in $n$ bit si rappresentano gli stessi $2^n$ numeri della virgola fissa, ma distribuiti diversamente. Nello standard IEEE 754 a 32 bit: 1 bit di segno, 8 di esponente ($B=127$), 23 di mantissa. All'esame compare un formato a 16 bit (1+4+11, $B=7$): codifica, decodifica e somma con allineamento degli esponenti. Il campo esponente tutto a 0 con mantissa nulla è lo zero.Virgola mobile - formato IEEE 754 e formato a 16 bit →).
- (a)
75FC() +EA6C() =70C6(), esatto. (b) ; ; ; =0 1100 11001100101(esatto , errore ). (c)ED1C, errore . - Errori: 1 implicito; offset; mantisse sommate prima dell'allineamento; normalizzazione dimenticata (Numeri binari e complemento a dueI processori lavorano con un numero fisso di bit $n$. I naturali vanno da $0$ a $2^n-1$; per i negativi si usa il complemento a due: $C_2(N)=2^n-N=\overline N+1$ (si invertono tutti i bit e si somma 1). Con $n$ bit rappresenta $-2^{n-1}\le N\le2^{n-1}-1$, ha un solo zero e unifica somma e sottrazione. Quando il risultato esce dall'intervallo c'è overflow; gli overflow intermedi si compensano se il risultato finale è rappresentabile. La lunghezza di parola non è l'accuratezza.Numeri binari e complemento a due →).