La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

T. MottaRappresentazione dei numeri1 Tommaso Motta.

Presentazioni simili


Presentazione sul tema: "T. MottaRappresentazione dei numeri1 Tommaso Motta."— Transcript della presentazione:

1 T. MottaRappresentazione dei numeri1 Tommaso Motta

2 T. Motta Rappresentazione dei numeri 2 Punto della situazione Abbiamo imparato diversi sistemi di numerazione (in particolare in base 2) Ma i numeri interi sono caratterizzati da modulo e segno  Fino ad ora non ci siamo preoccupiamo del segno  Adesso ci chiediamo come un PC può rappresentare i numeri, con modulo e segno

3 T. Motta Rappresentazione dei numeri 3 Prima di iniziare: il concetto di Overflow Qualunque sia il numero di bit usati per rappresentare un numero in un calcolatore, esso permetterà la rappresentazione di interi in un range FINITO.  I calcolatori non operano sui numeri naturali ma su loro sottoinsiemi finiti Somma e differenza di interi non sono sempre definite in tali insiemi; ad esempio se ho:  Riporto dal bit più significativo  Prestito richiesto dal bit più significativo allora il numero di bit fissato non è sufficiente per rappresentare il risultato. Questa condizione si chiama OVERFLOW

4 T. Motta Rappresentazione dei numeri 4 Esempi di overflow Il risultato non è rappresentabile su 4 bit in entrambi i casi

5 T. Motta Rappresentazione dei numeri 5 Codifica dei numeri interi Nell’aritmetica binaria vi sono varie tecniche di rappresentazione dei numeri interi con segno  Modulo e segno  Complemento alla base (complemento a 2) ...

6 T. Motta Rappresentazione dei numeri 6 Rappresentazione modulo e segno Convenzione: uso il bit più significativo (= di peso maggiore) per rappresentare il segno L’intervallo di valori rappresentabili su n bit è:

7 T. Motta Rappresentazione dei numeri 7 Problemi della rappresentazione in modulo e segno Ci sono 2 inconvenienti in questa rappresentazione:  Si hanno due rappresentazioni per lo “0” e  La somma di numeri con segno diverso porta a risultati scorretti: = = -2. ovvero

8 T. Motta Rappresentazione dei numeri 8 Complemento alla base Si definisce complemento alla base di un numero A in base b, rappresentato con n cifre, il numero Ā = b n – |A| Quando b = 2 (base 2) il complemento alla base viene detto complemento a 2 Il complemento a 2 di un numero viene ottenuto invertendo tutti i bit (0 diventa 1, 1 diventa 0) e aggiungendo 1

9 T. Motta Rappresentazione dei numeri 9 Rappresentazione dei numeri con complemento alla base Questo metodo permette di risolvere i problema del “doppio zero” e dell’addizione COME SI RAPPRESENTANO I NUMERI:  per i numeri positivi: si tiene la codifica in binario del numero  per i numeri negativi: 1. rappresento in binario il valore assoluto del numero 2. inverto tutti i bit 3. sommo 1 Esempio: -35 (35) 10 = ( ) 2 (-35) 10 = ( ) 2

10 T. Motta Rappresentazione dei numeri 10 Rappresentazione dei numeri con complemento alla base Qual è il complemento a 2 dello zero? L’intervallo di valori rappresentabili su n bit in complemento a 2 è ora: Viene recuperato il valore “sprecato” per il secondo zero  Ad esempio, i valori rappresentabili su 8 bit vanno da – 128 a 127

11 T. Motta Rappresentazione dei numeri 11 Somma (e sottrazione) di numeri in complemento a 2 Per sommare numeri rappresentati in complemento a due si devono trattare i numeri come interi senza segno, ovvero si considera il bit di segno come qualunque altro bit del numero, e non si tiene conto dell’eventuale riporto della posizione più a sinistra Esempio: = = = Non viene considerato  = 3 10

12 T. Motta Rappresentazione dei numeri 12 Riassumendo

13 T. Motta Rappresentazione dei numeri 13 Numeri in virgola mobile Come abbiamo già visto, non ci sono solo numeri interi ma anche numeri con la virgola Supponiamo inoltre di voler rappresentare un intero molto grande, come ad esempio duemila miliardi: N = ( ) 10  Avremmo bisogno di ben 41 bit per rappresentarlo come unsigned (o 42 come int) La maggior parte dello spazio sarebbe sprecato per conservare informazione sugli zeri: in effetti si può usare la notazione scientifica e scrivere, in modo molto più compatto: N = 2,0 x 10 12

14 T. Motta Rappresentazione dei numeri 14 Numeri in virgola mobile Notazione: N = 2,0 x mantissa base esponente

15 T. Motta Rappresentazione dei numeri 15 Standard IEEE 75 per la rappresentazione dei numeri in virgola mobile Rappresento il numero in binario, convertendo parte intera e parte frazionaria Il numero binario ottenuto viene trasformato in notazione normalizzata, cioè: ± 1,M x 2 E dove:  M = Mantissa  E = Esponente

16 T. Motta Rappresentazione dei numeri 16 Numeri in virgola mobile a precisione singola Lo standard IEEE 754 prevede che un numero reale floating point sia rappresentato con 4 byte:  1 bit per il segno  8 bit per l’esponente  23 bit per la mantissa

17 T. Motta Rappresentazione dei numeri 17 Numeri in virgola mobile a precisione doppia (double) Numero rappresentato con 8 byte:  1 bit per il segno  11 bit per l’esponente  52 bit per la mantissa

18 T. Motta Rappresentazione dei numeri 18 Esponente I bit degli esponenti vengono utilizzati per rappresentare sia esponenti positivi che negativi Per la rappresentazione dell’esponente viene utilizzato un metodo particolare: esponente biased  L’esponente è rappresentato nella forma bias + E il valore del bias dipende dal numero di bit utilizzati per l’esponente se i bit nell’esponente sono n, il bias vale 2 n /2 – 1  per 8 bit vale 127  per 11 bit vale 1024

19 T. Motta Rappresentazione dei numeri 19 Mantissa Il numero di bit riservati alla mantissa determina il numero di cifre significative che si possono utilizzare (cioè la precisione)  la cifra 1 prima della virgola è sottointesa, quindi si hanno 24 bit di mantissa in precisione singola 53 bit di mantissa in precisione doppia

20 T. Motta Rappresentazione dei numeri 20 Riepilogo Precisione singola Bias = 127  il valore 127 corrisponde allo 0 come esponente Tutti gli esponenti negativi sono compresi tra 1 e 126 (quindi hanno primo bit = 0) Tutti gli esponenti positivi sono compresi tra 128 e 255 (quindi hanno primo bit = 1) Ordine di grandezza dei numeri rappresentabili: da a La precisione della mantissa è di 24 cifre binarie, quindi 6-7 cifre decimali significative...

21 T. Motta Rappresentazione dei numeri 21 Riepilogo Precisione doppia Bias = 1023  il valore 1023 corrisponde allo 0 come esponente Ordine di grandezza dei numeri rappresentabili: da a La precisione della mantissa è di 53 cifre binarie, quindi cifre decimali significative...

22 T. Motta Rappresentazione dei numeri 22 Operazioni con notazione floating point Si possono sommare due numeri floating point solo se hanno lo stesso esponente  se l’esponente è uguale si sommano le mantisse e si mantiene l’esponente comune  se gli esponenti non sono uguali, devono essere resi uguali (trasformo numero con esponente più grande) il risultato deve poi essere normalizzato

23 T. Motta Rappresentazione dei numeri 23 Errori dovuti alla rappresentazione floating point La precisione “limitata” e gli arrotondamenti nei risultati delle operazioni causano alcuni problemi:  le operazioni di confronto possono dare risultati inaspettati  non valgono più le proprietà commutativa associativa distributiva


Scaricare ppt "T. MottaRappresentazione dei numeri1 Tommaso Motta."

Presentazioni simili


Annunci Google