Fondamenti di Informatica
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1
Fondamenti di Informatica - Codifica dei numeri reali
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1
FONDAMENTI DI INFORMATICA
Prof. PIER LUCA MONTESSORO
Facoltà di Ingegneria Università degli Studi di Udine
Codifica dei numeri reali
Fondamenti di Informatica - Codifica dei numeri reali
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 2 Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (ivi inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio, musica e testo) sono di proprietà dell’autore prof. Pier Luca Montessoro, Università degli Studi di Udine.
Le slide possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca, scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministero dell’Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine di lucro. In tal caso non è richiesta alcuna autorizzazione.
Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su supporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte dell’autore.
L’informazione contenuta in queste slide è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senza preavviso. L’autore non assume alcuna responsabilità per il contenuto di queste slide (ivi incluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamento dell’informazione).
In ogni caso non può essere dichiarata conformità all’informazione contenuta in queste slide.
In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devono mai essere rimossi e devono essere riportati anche in utilizzi parziali.
Nota di Copyright
Fondamenti di Informatica - Codifica dei numeri reali
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 3
Notazione posizionale (parte frazionaria)
.127
1•10 -1 2•10 -2 7•10 -3
Fondamenti di Informatica - Codifica dei numeri reali
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 4
Notazione posizionale (parte frazionaria)
• In generale:
m m a a
a
a − 1 − 2 − ( − 1 ) − .
0 L
m m m
m b a b
a
b a b a N
−
−
−
−
−
−
−
−
−
−
+ +
+ +
=
) 1 ( ) 1 (
2 2 1 1
L
L
Fondamenti di Informatica - Codifica dei numeri reali
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 5
Esempi
.1 3 = 1• 3 -1 = 1/3 10
.101 2 = 1• 2 -1 + 0 • 2 -2 + 1 • 2 -3 = 0.625 10
Fondamenti di Informatica - Codifica dei numeri reali
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 6
Conversione da base b a base 10
) (
( (
) (
(
) (
1 )
1 ( 1 2
1 1 1
) 2 ( ) 3 ( ) 1 ( 2
1 1 1
) 1 ( ) 2 ( ) 1 ( 1
2 1 1
) 1 ( ) 1 ( 2
2 1 1
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
+ +
+ +
=
= +
+ + +
= +
+ + +
= +
+ + +
=
b a a b a
b a b
b a b a a
b a b
b a b
a b
a a b
b a b a b
a b a N
m m
m m m m
m m m m
m m m m
L L
L L
L
Fondamenti di Informatica
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 2
Fondamenti di Informatica - Codifica dei numeri reali
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 7
Conversione da base b a base 10
• Si procedere iterativamente per divisioni successive:
– si parte dall’ultima cifra a destra – si divide per la base
– si somma la cifra immediatamente a sinistra
– si ripete fino all’attraversamento del punto decimale
Fondamenti di Informatica - Codifica dei numeri reali
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 8
Esempio:
conversione da base 2 a base 10
.1 0 1 2
1 1.25:2=0.625
0.5:2=0.25
0.25+1=1.25
1:2=0.5
0.5+0=0.5
A F
D
E
B
C
Fondamenti di Informatica - Codifica dei numeri reali
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 9
Conversione da base 10 a base b
) 1 ( 1
2 1
−
−
−
−
−
− + + +
=
⋅ b a a b a m b m
N L
parte frazionaria parte
intera
) ( 1 2 1 ( 1 ) ( 2 ) ( 1 )
1
) 1 ( ) 1 ( 2
2 1 1
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
+ +
+ +
= +
+ + +
=
m m m m
m m m m
b a b
a b
a a b
b a b a b
a b a N
L L
Fondamenti di Informatica - Codifica dei numeri reali
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 10
Conversione da base 10 a base b
• Si procedere iterativamente per moltiplicazioni successive:
– si moltiplica per la nuova base
– la parte intera del risultato è la successiva cifra (partendo dalla virgola) del numero rappresentato nella nuova base
– la parte frazionaria diventa il nuovo numero da moltiplicare
Fondamenti di Informatica - Codifica dei numeri reali
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 11
Esempio:
conversione da base 10 a base 2 0.625 10 1
x2
0.25
parte frazionaria parte intera del prodotto
0 0.5
parte frazionaria parte intera del prodotto x2
x2
0.0
1 parte frazionaria
parte intera del prodotto ri sul tato A
B
C
Fondamenti di Informatica - Codifica dei numeri reali
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 12
Fixed point e floating point
• Fixed point: si pone il punto decimale in corrispondenza di una potenza della base prefissata (tipicamente tra b 0 e b -1 )
– esempio: 618.773629
– limitato intervallo di rappresentazione – scarsa flessibilità
• Floating point: stesso tipo di rappresentazione della comune notazione scientifica
– esempio: 6.18773629•10
2Fondamenti di Informatica
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 3
Fondamenti di Informatica - Codifica dei numeri reali
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 13
Floating point standard IEEE 754-1985
segno (S)
esponente (E)
mantissa (F)
N = -1 S • 2 E-M • 1.F
L’ESPONENTE È RAPPRESENTATO IN “ECCESSO M” (AD ESEMPIO M=128).
QUINDI
SE E=130 IL VALORE DELL’ESPONENTE È 2, SE E=125 IL VALORE È -3
Il valore è normalizzato!
Fondamenti di Informatica - Codifica dei numeri reali
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 14