Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

47
FONDAMENTI DI INFORMATICA FONDAMENTI DI INFORMATICA ESERCITAZIONI ANNO ACCADEMICO 2012-2013 DOTT. FABRIZIO SOLINAS Mail: [email protected] Errate corrige Con esercizi svolti

description

Esercitazioni fondamenti

Transcript of Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

Page 1: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

FONDAMENTI DI INFORMATICA

FONDAMENTI DI INFORMATICA

ESERCITAZIONI ANNO ACCADEMICO 2012-2013

DOTT. FABRIZIO SOLINAS

Mail: [email protected]

Errate corrige Con esercizi svolti

Page 2: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 3: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 4: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 5: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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.

Page 6: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 7: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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.

Page 8: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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.

Page 9: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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]

Page 10: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 11: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 12: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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]

Page 13: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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]

Page 14: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 15: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 16: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 17: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 18: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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.

Page 19: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 20: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 21: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 22: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 23: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 24: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 25: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 26: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 27: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 28: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 29: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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.

Page 30: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 31: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 32: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 33: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 34: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 35: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 36: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 37: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 38: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 39: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 40: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 41: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 42: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 43: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 44: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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.).

Page 45: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 46: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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

Page 47: Fondamenti esercitazioni parte2d_eserciziriassuntivisvolti

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