View
217
Download
0
Category
Preview:
DESCRIPTION
Esercitazioni fondamenti
Citation preview
FONDAMENTI DI INFORMATICA
FONDAMENTI DI INFORMATICA
ESERCITAZIONI ANNO ACCADEMICO 2012-2013
DOTT. FABRIZIO SOLINAS
Mail: fabrizio.solinas@unica.it
Errate corrige Con esercizi svolti
FONDAMENTI DI INFORMATICA
Parte 2d
• Numeri frazionari in virgola fissa § Da binario a decimale § Da decimale a binario.
• Numeri in virgola mobile.
• Rappresentazione esponenziale normalizzata.
• Rappresentazione floating point.
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 2
FONDAMENTI DI INFORMATICA
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 3
Parte 2d: virgola fissa
CONVERSIONE DECIMALE-BINARIO.
NUMERO FRAZIONARIO. LA FORMA POLINOMIALE PARTE FRAZIONARIA
(.c−1 · · · c−m)b = c−1 × b−1 + · · · + c−m × b−m
PROCEDIMENTO DI CONVERSIONE 1. SI MOLTIPLICA LA PARTE FRAZIONARIA DEL NUMERO DECIMALE PER 2
§ LA PARTE INTERA DEL PRODOTTO OTTENUTO E’ UNA CIFRA BINARIA
§ SE LA PARTE FRAZIONARIA RIMANENTE E’ NULLA, IL PROCEDIMENTO E’ TERMINATO
§ SE LA PARTE FRAZIONARIA NON E’ NULLA (O NON SI E’ RAGGIUNTO IL RISULTATO DESIDERATO) SI RIPETE IL PROCEDIMENTO
FONDAMENTI DI INFORMATICA
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 4
Parte 2d: virgola fissa
SISTEMA DI NUMERAZIONE DECIMALE.
NUMERI FRAZIONARI
§ ESEMPIO: IL NUMERO 57427.356
FONDAMENTI DI INFORMATICA
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 5
Parte 2d: virgola fissa
CONVERSIONE DECIMALE-BINARIO.
§ ESEMPIO:CONVERSIONE DI 0.5625 IN BINARIO.
FONDAMENTI DI INFORMATICA
Parte 2d: virgola fissa CONVERTIRE IL NUMERO 17.55 IN BINARIO (PRECISIONE 8 CIFRE DECIMALI, ARROTONDAMENTO PER TRONCAMENTO).
Parte intera: si usano i metodi gia visti. 17 10 --> 100012
Parte decimale: si usano le moltiplicazioni successive. • 0.55 * 2 = 1.10 (parte intera 1)si considera solo la parte decimale "0.10"
• 0.10 * 2 = 0.20 (parte intera 0) • 0.20 * 2 = 0.40 (parte intera 0)
• 0.40 * 2 = 0.80 (parte intera 0)
• 0.80 * 2 = 1.60 (parte intera 1) si considera solo la parte decimale "0.60"
• 0.60 * 2 = 1.20 (parte intera 1) si considera solo la parte decimale "0.20”
• 0.20 * 2 = 0.40 (parte intera 0)
• 0.40 * 2 = 0.80 (parte intera 0)
Avendo ormai calcolate 8 cifre si tronca il risultato.
Il risultato, a 8 cifre binarie frazionali, è quindi pari a : 10001.100011002 .
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 6
FONDAMENTI DI INFORMATICA
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 7
Parte 2d: virgola fissa
SISTEMA DI NUMERAZIONE BINARIO.
CONVERSIONE DECIMALE-BINARIO.
§ ESERCIZIO 1:CONVERSIONE DI 0.3562 IN BINARIO CON 5 BIT
FRAZIONARI.
FONDAMENTI DI INFORMATICA
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 8
Parte 2d: virgola fissa
SISTEMA DI NUMERAZIONE BINARIO.
CONVERSIONE DECIMALE-BINARIO.
§ ESERCIZIO 1:CONVERSIONE DI 0.3562 IN BINARIO CON 5 BIT
FRAZIONARI.
FONDAMENTI DI INFORMATICA
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 9
Parte 2d: virgola fissa
SISTEMA DI NUMERAZIONE BINARIO.
CONVERSIONE DECIMALE-BINARIO.
§ ESERCIZI:
§ CONVERTIRE IN BINARIO I SEGUENTI NUMERI IN BINARIO CON MASSIMO 5 CIFRE DECIMALI.
§ 23,466 [10111.0111]
§ 61,625 [111101.101]
§ 13,543 [1101.10001]
§ 55,110 [110111.00011]
FONDAMENTI DI INFORMATICA
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 10
Parte 2d: virgola fissa
SISTEMA DI NUMERAZIONE BINARIO.
CONVERSIONE BINARIO-DECIMALE.
§ NUMERI FRAZIONARI.
§ ESEMPIO: (0.101)2
0·20 + 1·2-1 + 0·2-2 + 1·2-3 = 0 + 0.5 + 0 + 0.125 = 0.625
FONDAMENTI DI INFORMATICA
Parte 2d: virgola fissa • CONVERTIRE IL NUMERO BINARIO 1101.001011002 IN
DECIMALE.
Parteintera:1*20 +0*21 +1*22 +1*23 =1+0+4+8=1310
Parte decimale: 0*2-1 + 0*2-2 + 1*2-3 + 0*2-4 + 1*2-5 + 1*2-6 + 0*2-7 + 0*2-8 = 0+0+0.125+0+0.03125+0.015625+0+0=0,17187510
In definitiva: 1101.001011002 = 13.17187510
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 11
FONDAMENTI DI INFORMATICA
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 12
Parte 2d: virgola fissa
SISTEMA DI NUMERAZIONE BINARIO.
CONVERSIONE BINARIO-DECIMALE.
§ ESERCIZI:
§ CONVERTIRE IN DECIMALE I SEGUENTI NUMERI BINARI UTILIZZANDO LA TECNICA DESCRITTA.
§ 111.101 [7.625]
§ 111.0101 [7.3125]
§ 10001.0001 [17.0625]
§ 11000.111 [24.875]
FONDAMENTI DI INFORMATICA
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 13
Parte 2d: virgola fissa
SISTEMA DI NUMERAZIONE BINARIO.
CONVERSIONE BINARIO-DECIMALE.
§ ESERCIZI:
§ CONVERTIRE IN DECIMALE I SEGUENTI NUMERI.
§ 11101.11010111 [29.83984375]
§ 10001.00001101 [17.05078125]
§ 00011.10011001 [3.59765625]
§ 11000.11111001 [24.97265625]
FONDAMENTI DI INFORMATICA
Parte 2d: virgola mobile. • REMAINDER: Un numero reale R può essere scritto in base B come
R= ± m * Be
m = mantissa e = esponente B = base Esempi con B=10:
R1 = 3.1569 * 103
R2 = 2054.00035 * 10-6
R3 = 0.0091 * 10-12 R4 = 16.35 * 105
Notazione Normalizzata: m = 0.d-1 .. d-k * Be
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 14
FONDAMENTI DI INFORMATICA
Parte 2d: virgola mobile. Esercizi.
• Esempio: § 1010 = 10102 = 1010.02 * 20 = 0.101*24
§ 151.2510:
– 151 = 128 + 16 + 4 + 2 + 1 = 100101112
– 0.2510 x 2 = 0.5010 parte intera 0
– 0.5010 x 2 = 110 parte intera 1
§ Quindi = 151.2510 = 10010111.012 = 0.10010111012 * 28
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 15
FONDAMENTI DI INFORMATICA
Parte 2d: virgola mobile.Esercizi.
• Convertire i seguenti numeri in virgola fissa e successivamente normalizzarli.(n=8,m=8) § 23.325 [00010111.01010011 - 0. 1011101010011 * 25]
§ 19.999 [00010011.11111111 - 0.1001111111111 * 25]
§ 22.001 [00010110.00000000 - 0.1011000000000 * 25]
§ 41.700 [00101001.10110011 - 0.10100110110011 * 26]
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 16
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. • Remainder.
§ Maggiore è il numero di bit per la mantissa e maggiore è l’accuratezza con cui si riescono a rappresentare i numero.
§ Aumentando i bit per l'esponente si aumenta l’intervallo dei numeri rappresentabili.
• Overflow: si ha quando l’esponente positivo è troppo grande per poter
essere rappresentato con il numero di bit assegnato all’esponente. • Underflow: si ha quando l’esponente negativo è troppo grande (in
valore assoluto) per poter essere rappresentato con il numero di bit assegnato all’esponente.
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 17
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Remainder. IEEE 754
• In riferimento a parole di 16/32/64/128
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 18
Dalla slide della prof.ssa Pes.
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio di esempio 2/3. CONVERTIRE IN FLOATING-POINT IEEE-754 (VIRGOLA MOBILE) SU 32 BIT IL NUMERO -5.828125.
Per convertire la parte intera da decimale a binario si procede dividendo il numero per 2:
§ 5 : 2 = 2 Resto 1
§ 2 : 2 = 1 Resto 0
§ 1 : 2 = 0 Resto 1
• Per convertire la parte frazionaria da decimale a binario si procede moltiplicando il numero per 2:
§ 0,828125 x 2 = 1,65625 Parte intera 1
§ 0,65625 x 2 = 1,3125 Parte intera 1
§ 0,3125 x 2 = 0,625 Parte intera 0
§ 0,625 x 2 = 1,25 Parte intera 1
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 19
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio di esempio 3/3. § 0,25 x 2 = 0,5 Parte intera 0
§ 0,5 x 2 = 1 Parte intera 1
§ 0 x 2 = 0 Parte intera 0
Per cui il numero binario è 101.110101 che si può anche scrivere come 1.01110101* 22
Quindi :
• segno = 1, esponente(prendo gli 8 bit successivi al bit del segno)(2+127)=10000001 ,
• mantissa=01110101000000000000000
• Il numero -5.828125 in floating point è 11000000101110101000000000000000
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 20
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio di esempio 1/2. CONVERTIRE IN FLOATING-POINT IEEE-754 (VIRGOLA MOBILE) SU 32 BIT IL NUMERO 3758.125 Per convertire la parte intera da decimale a binario si procede dividendo il numero per 2:
§ 3758 : 2 = 1879 Resto 0 § 1879 : 2 = 939 Resto 1 § 939 : 2 = 469 Resto 1 § 469 : 2 = 234 Resto 1 § 234 : 2 = 117 Resto 0 § 117 : 2 = 58 Resto 1 § 58 : 2 = 29 Resto 0 § 29 : 2 = 14 Resto 1 § 14 : 2 = 7 Resto 0 § 7 : 2 = 3 Resto 1 § 3 : 2 = 1 Resto 1 § 1 : 2 = 0 Resto 1
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 21
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio di esempio 2/2. Per convertire la parte frazionaria da decimale a binario si procede moltiplicando il numero per 2:
§ 0,125 x 2 = 0,25 Parte intera 0 § 0,25 x 2 = 0,5 Parte intera 0 § 0,5 x 2 = 1 Parte intera 1 § 0 x 2 = 0 Parte intera 0
Il numero in binario è 111010101110.0010 che si può scrivere come 1.110101011100010* 211
Quindi : segno =0 , esponente(prendo gli 8 bit successivi al bit del segno)(11+127)=(10+128)=10001010 mantissa=11010101110001000000000 Il numero 3758.125 in floating point è 01000101011010101110001000000000
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 22
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio di esempio 1/3. CONVERTIRE IN FLOATING-POINT IEEE-754 (VIRGOLA MOBILE) SU 32 BIT IL NUMERO -23552.25
Per convertire la parte intera da decimale a binario si procede dividendo il numero per 2:
§ 23552 : 2 = 11776 Resto 0
§ 11776 : 2 = 5888 Resto 0
§ 5888 : 2 = 2944 Resto 0
§ 2944 : 2 = 1472 Resto 0
§ 1472 : 2 = 736 Resto 0
§ 736 : 2 = 368 Resto 0
§ 368 : 2 = 184 Resto 0
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 23
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio di esempio 2/3. § 184 : 2 = 92 Resto 0 § 92 : 2 = 46 Resto 0 § 46 : 2 = 23 Resto 0 § 23 : 2 = 11 Resto 1 § 11 : 2 = 5 Resto 1 § 5 : 2 = 2 Resto 1 § 2 : 2 = 1 Resto 0 § 1 : 2 = 0 Resto 1
Per convertire la parte frazionaria da decimale a binario si procede moltiplicando il numero per 2:
§ 0,25 x 2 = 0,5 Parte intera 0 § 0,5 x 2 = 1 Parte intera 1 § 0 x 2 = 0 Parte intera 0
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 24
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio di esempio 3/3. Il numero in binario è 101110000000000.010 che si può scrivere come 1.01110000000000010* 214
Quindi :
segno =1,
esponente(prendo gli 8 bit successivi al bit del segno)(14+127)=10001101
mantissa=01110000000000010000000
Il numero -23552.25 in floating point è 11000110101110000000000010000000
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 25
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizi di esempio. CONVERTIRE IN DECIMALE I NUMERI ESPRESSI IN ESADECIMALE SECONDO LO STANDARD IEEE-754 SU 32 BIT.
• NUMERO 41340000H
§ Numero in floating point = 01000001001101000000000000000000
§ segno=0 esponente(130-127)=310
§ numero=1011,012=11,2510 • NUMERO C1140000H
§ Numero in floating point=11000001000101000000000000000000
§ segno=1 esponente(130-127)=310
§ numero=-1001,012=-9,2510
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 26
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio di esempio 1/2. • Sia:
§ s = 1 § e = 10000111
§ m = 11011000000000000000000
• un numero in virgola mobile secondo lo standard IEEE 754 a 32 bit. Convertire in decimale.
• Soluzione:
§ La formula generale è (-1)s *2(e-127) *1.m
• Abbiamo § e = 100001112 = 13510
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 27
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio di esempio 2/2.
• Quindi: § N = (-1)s *2(e-127) *1.m
= -1 *2(135-127) *1.11011
= -1 *28 *1.11011
= - 1110110002
= -(28+27+26+24+23)10
= -47210
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 28
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizi. • CONVERTIRE IN BINARIO SEGUENTI NUMERI DECIMALI
FRAZIONARI CON CODIFICA SU 32 BIT IEEE 754.
A. -12.72
B. +14.375 C. +7.99
D. -2.21
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 29
Nelle slide successive ciascun esercizio è svolto interamente, passo dopo passo, in quanto i risultati
precedentemente forniti erano stati calcolati da software che approssimavano il risultato. Quindi è per tale motivo
che i risultati calcolati a mano risultavano diversi da quelli ottenuti tramite software.
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio Riassuntivo A. 1/4. CONVERTIRE IN FLOATING-POINT IEEE-754 (VIRGOLA MOBILE) SU 32 BIT IL NUMERO -12.72 Parte intera:
1210 = 11002
Parte frazionaria
• 0.72 X 2 = 1.44 parte intera 1 • 0.44 X 2 = 0.88 parte intera 0 • 0.88 X 2 = 1.76 parte intera 1 • 0.76 X 2 = 1.52 parte intera 1 • 0.52 X 2 = 1.04 parte intera 1 • 0.04 X 2 = 0.08 parte intera 0 • 0.08 X 2 = 0.16 parte intera 0
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 30
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio Riassuntivo A. 2/4. • 0.16 X 2 = 0.32 parte intera 0
• 0.32 X 2 = 0.64 parte intera 0
• 0.64 X 2 = 1.28 parte intera 1
• 0.28 X 2 = 0.56 parte intera 0
• 0.56 X 2 = 1.12 parte intera 1
• 0.12 X 2 = 0.24 parte intera 0
• 0.24 X 2 = 0.48 parte intera 0
• 0.48 X 2 = 0.96 parte intera 0
• 0.96 X 2 = 1.92 parte intera 1
• 0.92 X 2 = 1.84 parte intera 1
• 0.84 X 2 = 1.68 parte intera 1
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 31
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio Riassuntivo A. 3/4. • 0.68 X 2 = 1.36 parte intera 1
• 0.36 X 2 = 0.72 parte intera 0
• 0.72 X 2 = 1.44 parte intera 1
• 0.44 X 2 = 0.88 parte intera 0
• 0.88 X 2 = 1.76 parte intera 1
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 32
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio Riassuntivo A. 4/4. Il numero in binario è 1100.10111000010100011110101 che si può scrivere come 1.10010111000010100011110101 * 23
Quindi :
segno =1,
esponente(prendo gli 8 bit successivi al bit del segno)(3+127)=10000010
Mantissa=10010111000010100011110 (che viene troncata al 23esimo bit)
Il numero -12.72 in floating point è
1 10000010 10010111000010100011110
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 33
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio Riassuntivo B. 1/2. CONVERTIRE IN FLOATING-POINT IEEE-754 (VIRGOLA MOBILE) SU 32 BIT IL NUMERO +14.375 Parte intera:
1410 = 11102
Parte frazionaria
• 0.375 X 2 = 0.75 parte intera 0 • 0.75 X 2 = 1.5 parte intera 1 • 0.5 X 2 = 1 parte intera 1 • 0 X 2 = 0 parte intera 0
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 34
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio Riassuntivo B. 2/2. Il numero in binario è 1110.0110 che si può scrivere come 1.1100110 * 23
Quindi :
segno =0,
esponente(prendo gli 8 bit successivi al bit del segno)(3+127)=10000010
Mantissa=11001100000000000000000
Il numero +14.375 in floating point è
0 10000010 11001100000000000000000
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 35
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio Riassuntivo C. 1/4. CONVERTIRE IN FLOATING-POINT IEEE-754 (VIRGOLA MOBILE) SU 32 BIT IL NUMERO +7.99 Parte intera:
710 = 1112
Parte frazionaria
• 0.99 X 2 = 1.98 parte intera 1 • 0.98 X 2 = 1.96 parte intera 1 • 0.96 X 2 = 1.92 parte intera 1 • 0.92 X 2 = 1.84 parte intera 1 • 0.84 X 2 = 1.68 parte intera 1 • 0.68 X 2 = 1.36 parte intera 1 • 0.36 X 2 = 0.72 parte intera 0
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 36
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio Riassuntivo C. 2/4. • 0.72 X 2 = 1.44 parte intera 1
• 0.44 X 2 = 0.88 parte intera 0
• 0.88 X 2 = 1.76 parte intera 1
• 0.76 X 2 = 1.52 parte intera 1
• 0.52 X 2 = 1.04 parte intera 1
• 0.04 X 2 = 0.08 parte intera 0
• 0.08 X 2 = 0.16 parte intera 0
• 0.16 X 2 = 0.32 parte intera 0
• 0.32 X 2 = 0.64 parte intera 0
• 0.64 X 2 = 1.28 parte intera 1
• 0.28 X 2 = 0.56 parte intera 0
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 37
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio Riassuntivo C. 3/4. • 0.56 X 2 = 1.12 parte intera 1
• 0.12 X 2 = 0.24 parte intera 0
• 0.24 X 2 = 0.48 parte intera 0
• 0.48 X 2 = 0.96 parte intera 0
• 0.96 X 2 = 1.92 parte intera 1
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 38
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio Riassuntivo C. 4/4. Il numero in binario è 111.11111101011100001010001 che si può scrivere come 1.1111111101011100001010001 * 22
Quindi :
segno =0,
esponente(prendo gli 8 bit successivi al bit del segno)(2+127)=10000001
Mantissa=11111111010111000010100 (che viene troncata al 23esimo bit)
Il numero +7.99 in floating point è
0 10000001 11111111010111000010100
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 39
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio Riassuntivo D. 1/4. CONVERTIRE IN FLOATING-POINT IEEE-754 (VIRGOLA MOBILE) SU 32 BIT IL NUMERO -2.21 Parte intera:
210 = 102
Parte frazionaria
• 0.21 X 2 = 0.42 parte intera 0 • 0.42 X 2 = 0.84 parte intera 0 • 0.84 X 2 = 1.68 parte intera 1 • 0.68 X 2 = 1.36 parte intera 1 • 0.36 X 2 = 0.72 parte intera 0 • 0.72 X 2 = 1.44 parte intera 1 • 0.44 X 2 = 0.88 parte intera 0
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 40
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio Riassuntivo D. 2/4. • 0.88 X 2 = 1.76 parte intera 1
• 0.76 X 2 = 1.52 parte intera 1
• 0.52 X 2 = 1.04 parte intera 1
• 0.04 X 2 = 0.08 parte intera 0
• 0.08 X 2 = 0.16 parte intera 0
• 0.16 X 2 = 0.32 parte intera 0
• 0.32 X 2 = 0.64 parte intera 0
• 0.64 X 2 = 1.28 parte intera 1
• 0.28 X 2 = 0.56 parte intera 0
• 0.56 X 2 = 1.12 parte intera 1
• 0.12 X 2 = 0.24 parte intera 0
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 41
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio Riassuntivo D. 3/4. • 0.24 X 2 = 0.48 parte intera 0
• 0.48 X 2 = 0.96 parte intera 0
• 0.96 X 2 = 1.92 parte intera 1
• 0.92 X 2 = 1.84 parte intera 1
• 0.84 X 2 = 1.68 parte intera 1
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 42
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio Riassuntivo D. 4/4. Il numero in binario è 10.00110101110000101000111 che si può scrivere come 1.000110101110000101000111 * 21
Quindi :
segno =1,
esponente(prendo gli 8 bit successivi al bit del segno)(1+127)=10000000
Mantissa=00011010111000010100011 (che viene troncata al 23esimo bit)
Il numero -2.21 in floating point è
1 10000000 00011010111000010100011
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 43
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizi. • CONVERTIRE IN DECIMALE I SEGUENTI NUMERI BINARI
FRAZIONARI CON CODIFICA SU 32 BIT IEEE 754.
I. 0 01111011 00100000000000000000000 [~0.07]
II. 0 10000001 01100010100000000000000 [~5.54] III. 1 10000010 10010001111000000000000 [~(-12.56)]
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 44
Nelle slide successive ciascun esercizio è svolto interamente, passo dopo passo, in quanto i risultati
precedentemente forniti erano stati calcolati da software che approssimavano il risultato. Quindi è per tale motivo
che i risultati calcolati a mano risultavano diversi da quelli ottenuti tramite software.
NB: (difficilmente sarà presente nel compito 2-6, 2-7 e cosi via.).
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio riassuntivo I.
• Quindi: § N = (-1)s *2(e-127) *1.m
= (-1)0 *2(123-127) *1.001
= 1 *2-4 *1.001
= 0.00010012
= (2-4+2-7)10
= (0.0625+0.0078125)10
= 0.0703125
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 45
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio riassuntivo II.
• Quindi: § N = (-1)s *2(e-127) *1.m
= (-1)0 *2(129-127) *1.011000101
= 1 *22 *1.011000101
= 101.10001012
= (22+20+2-1+2-5+2-7)10
= (4+1+0.5+0.03125+0.0078125)10
= 5.5390625.
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 46
FONDAMENTI DI INFORMATICA
Parte 2d Floating point. Esercizio riassuntivo III.
• Quindi: § N = (-1)s *2(e-127) *1.m
= (-1)1 *2(130-127) *1.10010001111
= -1 *23 *1.10010001111
= -1100.100011112
= -(23+22+2-1+2-5+2-6+2-7+2-8)10
= -(8+4+0.5+0.03125+0.015625+0.0078125+0.00390625)10 = -12.55859375.
UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 47
Recommended