Esercizio 1da reale a esadecimale con formato ottimo, errore e bit minimi (temi d'esame febbraio 2023, gennaio 2022 e settembre 2026)
In questa pagina 7
Testo (tema d'esame febbraio 2023, problema 1; gennaio 2022, problema P1.1; settembre 2026, problema 1). Si convertano in valori esadecimali a 16 bit i seguenti numeri frazionari, applicando l'arrotondamento e normalizzando nel modo più conveniente, cioè minimizzando l'errore introdotto; si indichino il formato scelto e l'errore assoluto (con segno se in eccesso).
(a) , , , ; (b) , , , ; (c) , , , (4° appello, settembre 2026). (d) Quanti bit totali servono per rappresentare , , con errore minore di 50 ppm (febbraio 2026)? (e) Rappresentare in complemento a 2 e formato Q7 (8 bit) e con troncamento, indicando l'errore (tema d'esame del 2004).
Teoria usata: Rappresentare un valore reale in virgola fissa - formato ottimo ed errorePer rappresentare un reale $x$ su $W$ bit a virgola fissa si sceglie il formato che minimizza l'erroresceglie la rappresentazione per cui la differenza tra il valore rappresentato e quello vero è la più piccola possibile: il maggior numero di bit frazionari $m$ compatibile con l'intervallo ($n=W-m$ bit interi, con U se $x\ge0$, con S se $x<0$). Poi $C=\mathrm{round}(x\cdot2^m)$, scritto in esadecimale (per un negativo, in complemento a 2), e l'errore $\varepsilon=\frac{C}{2^m}-x$, positivo se in eccesso, ha modulo $\le2^{-(m+1)}$. Se invece è dato l'errore massimo, i bit minimi si ricavano da $2^{-(m+1)}\le\varepsilon_{max}$.Rappresentare un valore reale in virgola fissa - formato ottimo ed errore →, Virgola fissa - formati n.m e normalizzazioneIn virgola fissa il processore fa aritmetica sugli interi (con segno) e il fattore di scalacostante per cui si moltiplica un valore reale per ottenere l'intero memorizzato $2^{m}$ resta sottinteso: il formato n.m dice che dei bit disponibili $n$ sono la parte intera (compreso il segno se il numero è con segno, S; nessun segno se U) e $m$ la parte frazionaria. Il valore è $\text{codice}/2^m$. Passare dal formato n.m al decimale, o viceversa, è il calcolo più frequente dell'esame: su 16 bit $\text{valore}=\text{codice}/2^m$, l'intervallo è $[0,2^n)$ (U) oppure $[-2^{n-1},2^{n-1})$ (S), la risoluzione è $2^{-m}$.Virgola fissa - formati n.m e normalizzazione →.
Il metodo
Per ogni numero : (1) U se , S se ; (2) = minimo numero di bit interi che contiene (per S il segno è compreso); (3) ; (4) , con se negativo; (5) .
(a)
| formato | calcolo di | codice | ||
|---|---|---|---|---|
| 0.16 U | ||||
| 1.15 S | ||||
| 8.8 S | ||||
| 1.15 U |
Per il numero è minore di 1 e positivo, quindi tutti i 16 bit sono frazionari (0.16 U); per serve il bit di segno e restano 15 frazionari. Per : , quindi servono 8 bit interi con il segno (8.8 S). è esatto.
(b)
: 1.15 U, , . : tra e , serve 2.14 S (), (stesso codice del positivo: letto come 2.14 S vale ), . : : 4.12 U, , . : 2.14 S, , .
(c)
- : 1.15 U, , .
- : 1.15 S, , .
- : 2.14 U (), , .
- : quindi serve bit di modulo più il segno: 5.11 S, , .
(d) Bit minimi per
- (U, ): con : , (troppo); con : , ✓. 13 bit (0.13 U).
- (U, ): : , (troppo); : , ✓. bit.
- : esatto con ; per S serve l'intervallo , : bit, errore nullo.
(e) Q7 con troncamento
Q7 = 1.7 S: (troncamento del modulo).
- ; valore rappresentato ; .
- ; rappresentato ; . Con arrotondamento si avrebbe () e (): l'errore massimo di troncamento è , doppio di quello di arrotondamento ().
Errori comuni
- Usare S per un numero positivo e perdere un bit di precisione ( in 1.15 S invece di 0.16 U).
- Scegliere senza controllare che il numero entri nell'intervallo (per esempio in 1.15 S non entra).
- Scrivere il modulo di un negativo senza il complemento a 2.
- Dimenticare di verificare la soglia: per (d) la formula non basta.
Versione ripasso
Testo. Convertire in esadecimale a 16 bit con formato ottimo, errore con segno e bit minimi per 50 ppm (febbraio 2023, gennaio 2022, settembre 2026).
- Metodo: U se , S se ; minimo; ; (Rappresentare un valore reale in virgola fissa - formato ottimo ed errorePer rappresentare un reale $x$ su $W$ bit a virgola fissa si sceglie il formato che minimizza l'erroresceglie la rappresentazione per cui la differenza tra il valore rappresentato e quello vero è la più piccola possibile: il maggior numero di bit frazionari $m$ compatibile con l'intervallo ($n=W-m$ bit interi, con U se $x\ge0$, con S se $x<0$). Poi $C=\mathrm{round}(x\cdot2^m)$, scritto in esadecimale (per un negativo, in complemento a 2), e l'errore $\varepsilon=\frac{C}{2^m}-x$, positivo se in eccesso, ha modulo $\le2^{-(m+1)}$. Se invece è dato l'errore massimo, i bit minimi si ricavano da $2^{-(m+1)}\le\varepsilon_{max}$.Rappresentare un valore reale in virgola fissa - formato ottimo ed errore →).
- Soluzione: 0.16U
BA2F; 1.15SA2E9; 8.8S84A9; 1.15UD000; 1.15UAAAB; 2.14SAAAB; 4.12U8A00; 2.14S9000;C71C;EEA1;D19A; 5.11SB0A0. - Bit per 50 ppm: : 13; : 19; : 9. Q7 troncato: (); ().
- Errori: S per i positivi; insufficiente; negativo senza complemento a 2 (Virgola fissa - formati n.m e normalizzazioneIn virgola fissa il processore fa aritmetica sugli interi (con segno) e il fattore di scalacostante per cui si moltiplica un valore reale per ottenere l'intero memorizzato $2^{m}$ resta sottinteso: il formato n.m dice che dei bit disponibili $n$ sono la parte intera (compreso il segno se il numero è con segno, S; nessun segno se U) e $m$ la parte frazionaria. Il valore è $\text{codice}/2^m$. Passare dal formato n.m al decimale, o viceversa, è il calcolo più frequente dell'esame: su 16 bit $\text{valore}=\text{codice}/2^m$, l'intervallo è $[0,2^n)$ (U) oppure $[-2^{n-1},2^{n-1})$ (S), la risoluzione è $2^{-m}$.Virgola fissa - formati n.m e normalizzazione →).