Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Rappresentazione dei numeri
Tommaso Motta 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 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 T. Motta Rappresentazione dei numeri
4
Esempi di overflow Il risultato non è rappresentabile su 4 bit in entrambi i casi 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) ... 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 è: 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: 0001 + 1001 = 1 + -1 = -2 . ovvero T. Motta Rappresentazione dei numeri
8
Rappresentazione dei numeri
Complemento alla base Si definisce complemento alla base di un numero A in base b, rappresentato con n cifre, il numero Ā = bn – |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 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: rappresento in binario il valore assoluto del numero inverto tutti i bit sommo 1 Esempio: -35 (35)10 = ( )2 (-35)10 = ( )2 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 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: -710 = = 01011 = Non viene considerato = 310 T. Motta Rappresentazione dei numeri
12
Rappresentazione dei numeri
Riassumendo 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 1012 T. Motta Rappresentazione dei numeri
14
Numeri in virgola mobile
Notazione: N = 2,0 x base esponente mantissa 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 2E dove: M = Mantissa E = Esponente 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 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 T. Motta Rappresentazione dei numeri
18
Rappresentazione dei numeri
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 2n/2 – 1 per 8 bit vale 127 per 11 bit vale 1024 T. Motta Rappresentazione dei numeri
19
Rappresentazione dei numeri
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 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 2128 La precisione della mantissa è di 24 cifre binarie, quindi 6-7 cifre decimali significative... 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 21024 La precisione della mantissa è di 53 cifre binarie, quindi cifre decimali significative... 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 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 T. Motta Rappresentazione dei numeri
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.