Eser virgola mobile (come si calcola l'errore assoluto?)
Si considerino due notazioni binarie in virgola mobile a 16 bit, entrambe con (nell'ordine da sinistra a destra) 1 bit per il segno (0=positivo), $e$ bit per l'esponente, rappresentato in eccesso $2^(e-1)$, ed i rimanenti m bit per la parte frazionaria della mantissa che è normalizzata tra 1 e 2. Nella prima notazione e=4 ed m=11, nella seconda e=8 ed m=7.
a) Dato il numero n rappresentato nella prima notazione dalla stringha 35D7, rappresentarlo nella seconda notazione;
b) calcolare l'errore relativo ed assoluto che si commette nel passaggio di notazione;
Dunque per il punto a) ho fatto così:
intanto la struttura delle 2 notazioni
1. trasformo il numero esadecim in binario, nella prima notazione:
35D7=0011 0101 1101 0111
2. il primo zero a sinistra mi dice che si tratta di un numero positivo;
3.le successive 4 cifre sono l'eseponente in Ecc.8 ($2^(4-1)=2^3=8$) e cioè: 0110=6. Per convertirlo in decimale gli devo sotrarre il "piedistallo", 8: quindi 6-8=-2.
4.Infine la mantissa è data dai successivi 11 bit, quindi 101 1101 0111.
5.Perciò il numero deve'essere: +1.101 1101 0111 $*2^(-2)$
Per rappresentarlo nella seconda notazione devo troncare la mantissa tenendo presente che anche nella seconda notaz la mantissa è normalizzata tra 1 e 2 (quindi il numero è 1,....).
1. Quindi per la nuova mantissa considero solo le prime 7 cifre della vecchia mantissa: 101 1101; rimangono fuori le ultime 4 cifre, 0111 .
2. L'esponente non cambia, è sempre -2 solo che bisogna codificarlo stavolta in Ecc.128. Per fare ciò devo aggiungere, stavolta, il "piedistallo" che è 128: -2+128=126.
3. Codificando in binario con 8 bit a disposiz viene 0111 1110.
4. Perciò il numero rappresentato nella seconda notazione è:
E' giusto così?
come procedere per il punto b)?
a) Dato il numero n rappresentato nella prima notazione dalla stringha 35D7, rappresentarlo nella seconda notazione;
b) calcolare l'errore relativo ed assoluto che si commette nel passaggio di notazione;
Dunque per il punto a) ho fatto così:
intanto la struttura delle 2 notazioni
I. segno esponente mantissa 1 4bit 11bit II. s esp mantissa 1 8 7
1. trasformo il numero esadecim in binario, nella prima notazione:
35D7=0011 0101 1101 0111
2. il primo zero a sinistra mi dice che si tratta di un numero positivo;
3.le successive 4 cifre sono l'eseponente in Ecc.8 ($2^(4-1)=2^3=8$) e cioè: 0110=6. Per convertirlo in decimale gli devo sotrarre il "piedistallo", 8: quindi 6-8=-2.
4.Infine la mantissa è data dai successivi 11 bit, quindi 101 1101 0111.
5.Perciò il numero deve'essere: +1.101 1101 0111 $*2^(-2)$
Per rappresentarlo nella seconda notazione devo troncare la mantissa tenendo presente che anche nella seconda notaz la mantissa è normalizzata tra 1 e 2 (quindi il numero è 1,....).
1. Quindi per la nuova mantissa considero solo le prime 7 cifre della vecchia mantissa: 101 1101; rimangono fuori le ultime 4 cifre, 0111 .
2. L'esponente non cambia, è sempre -2 solo che bisogna codificarlo stavolta in Ecc.128. Per fare ciò devo aggiungere, stavolta, il "piedistallo" che è 128: -2+128=126.
3. Codificando in binario con 8 bit a disposiz viene 0111 1110.
4. Perciò il numero rappresentato nella seconda notazione è:
s esponente mantissa --------------------------- 0 0111 1110 101 1101
E' giusto così?
come procedere per il punto b)?
Risposte
so ke ho scritto molto ma ho solo riportato il testo dell'esericizio e il mio tentativo di risolvere la prima domanda.
Potete dirmi se il punto a) l'ho svolto bene?
Potete dirmi se il punto a) l'ho svolto bene?