Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012....

21
Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012

Transcript of Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012....

Page 1: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

Fondamenti di Informatica - 1

Esercizi

A.A. 2011/2012

Page 2: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

Esercizio

Page 3: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

Esercizio

Page 4: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

Esercizio

Page 5: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

Esercizio

Page 6: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

Esercizio

Dato il numero

11000000111100000000000000000000

rappresentato secondo lo standard floating point IEEE 754 determinare il corrispondente valore decimale.

Page 7: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

Soluzione

Dato il numero

11000000111100000000000000000000

rappresentato secondo lo standard floating point IEEE 754 determinare il corrispondente valore decimale.

Soluzione

1 1000 0001 111 0000 0000 0000 0000 0000s esponente mantissa

-1 * (1.mantissa) * 2(esponente-127)

-1 * (1.111) * 2(129-127)

-1 * (1.111) * 2(2) = -111.1 = -7.5

Page 8: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

EsercizioCalcolare gli estremi degli intervalli di definizione dei numeri

secondo lo standard IEEE 754 a 32 bit considerando le

configurazioni speciali dell’esponente .

mantissa

esponente

00000000 11111111

00000……000 Zero ±∞

≠00000…..000 Numero

denormalizzato

NaN

Page 9: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

SoluzioneCalcolare gli estremi degli intervalli di definizione dei numeri

secondo lo standard IEEE 754 a 32 bit considerando le

configurazioni speciali dell’esponente .

Più grande normalizzato: ~±2128

X 11111110 11111111111111111111111

± 2127 ~2 (1.11111……11 ≈ 2 )

Più piccolo normalizzato: ±2-126

X 00000001 00000000000000000000000

± 2-126 1 (1.00000…..0 )

Più grande denormalizzato: ~ ±2-126

X 00000000 11111111111111111111111

± 2-126 ~ 1 (0.111111...1 ≈ 1)

Più piccolo denormalizzato: ±2-149

X 00000000 00000000000000000000001

± 2-126 2-23 (0.00...1= 2-23 )

Soluzione:(-2128,-2-149] [2-149,2128)

Page 10: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

SoluzioneCalcolare gli estremi degli intervalli di definizione dei numeri

secondo lo standard IEEE 754 a 32 bit considerando le

configurazioni speciali dell’esponente .

Più grande normalizzato: ~±2128

X 11111110 11111111111111111111111

± 2127 ~2 (1.11111……11 ≈ 2 )

Più piccolo normalizzato: ±2-126

X 00000001 00000000000000000000000

± 2-126 1 (1.00000…..0 )

Più grande denormalizzato: ~ ±2-126

X 00000000 11111111111111111111111

± 2-126 ~ 1 (0.111111...1 ≈ 1)

Più piccolo denormalizzato: ±2-149

X 00000000 00000000000000000000001

± 2-126 2-23 (0.00...1= 2-23 )

Soluzione:(-2128,-2-149] [2-149,2128)

Page 11: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

EserciziConvertire in binario i seguenti numeri in base 10:

1. 0.510 =

2. 0.2510 =

3. 0.12510 =

4. 0.062510 =

Page 12: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

SoluzioneConvertire in binario i seguenti numeri in base 10:

1. 0.510 = 0.12

2. .2510 = 0.012

3. .12510 = 0.0012

4. .062510 = 0.00012

Page 13: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

Svolgimento esercizi 1 e 4

1)0.510

.5*2=1 parte intera=1 parte frazionaria restante =0

.510 = (.1)2

4)0.062510

.0625*2= 0.125 parte intera=0 parte frazionaria restante=0.125

.125*2=0.25 parte intera=0 parte frazionaria restante=0.25

.25*2=0.5 parte intera=0 parte frazionaria=0.5

.5*2=1 parte intera=1 parte frazionaria = 0

.062510 = (.0001)2

21/03/2012 13

Page 14: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

EsercizioConvertire in binario i seguenti numeri decimali

a) 17.562510 =

b) 26.187510 =

Page 15: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

a) 17.562510

Per la parte intera:

17/2=8 resto 1

8/2=4 resto 0

4/2 = 2 resto 0

2/2 = 1 resto 0

1/2 = 0 resto 1

(17)10 = (10001)2

Per la parte decimale:

.5625*2= 1.125 parte intera=1 parte frazionaria restante=0.125

.125*2=0.25 parte intera=0 parte frazionaria restante=0.25

.25*2=0.5 parte intera=0 parte frazionaria=0.5

.5*2=1 parte intera=1 parte frazionaria = 0

.562510 = (.1001)2

Sommando i risultati 17.562510 = (10001.1001)2

21/03/2012 15

Soluzione

Page 16: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

21/03/2012 16

b) 26.187510

Per la parte intera:

26/2=13 resto 0

13/2=6 resto 1

6/2 = 3 resto 0

3/2 = 1 resto 1

1/2 = 0 resto 1

(26)10 = (11010)2

Per la parte decimale:

.1875*2= 0.375 parte intera=0 parte frazionaria restante=0.375

.375*2=0.75 parte intera=0 parte frazionaria restante=0.75

.75*2=1.5 parte intera=1 parte frazionaria=0.5

.5*2=1 parte intera=1 parte frazionaria =0

.187510 = (.0011)2

Sommando i risultati 26.187510 = (11010.0011)2

Soluzione

Page 17: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

Esercizio

Data una parola di memoria di 32 bit organizzata come in figura:

1 bit per il segno,

8 bit per l'esponente rappresentato in codice eccesso 28-1

23 bit per la mantissa compresa tra 1 e 2 (standard IEEE754)

Trovare la rappresentazione binari del numero 331,6875

21/03/2012 17

Page 18: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

Soluzione

Il bit del segno sarà 0 in quanto N è positivo

Trasformo la parte intera del numero (ignorando il segno) in binario = 101001011

Trasformo la parte frazionaria (mantissa) del numero in binario =1011

Metto insieme la parte intera e frazionaria ottenendo il numero in virgola fissa.

101001011. 1011

Normalizzo il numero in virgola fissa ottenendo un numero che inizia per 1,... moltiplicato per

2spostamenti_virgola . Se sposto la virgola a sinistra l'esponente sarà positivo, se sposto la virgola a

destra l'esponente sarà negativo, se non la sposto l'esponente sarà zero.

1.010010111011*28

La parte dopo la virgola del numero normalizzato corrisponderà ai bit della mantissa. Se i bit

sono di meno rispetto a quelli della codifica (23 in questo esempio) saranno aggiunti degli zeri

fino ad arrivare al bit 23, se sono di più saranno ignorati i bit successivi al 23esimo.

Si somma K all'esponente ottenuto = 127+8=135 10 = 100001112, dove

K=2bit_esponente-1-1 .

Il nuovo esponente è stato convertito in binario naturale a 8 bit (perché in precisione singola

abbiamo 8 bit di esponente).

Il risultato sarà: [1bit segno][8bit esponente][23bit mantissa]

0 10000111 10010111011000000000000

21/03/2012 18

Page 19: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

21/03/2012 19

Rappresentare secondo lo standard IEEE 754 i seguenti valori:

a) 1.0

b) -1

c) 2

d) 0.5

e) 0.666666

f) 3.141593

Esercizi - Standard IEEE 754

Page 20: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

Soluzione

Rappresentare secondo lo standard IEEE 754 i seguenti valori:

a) 1.0

• 0 01111111 0000000 00000000 00000000

b) -1

• 1 01111111 0000000 00000000 00000000

c) 2 = 1 × 21

• 0 10000000 0000000 00000000 00000000

d) 0.5 = 1 × 2-1

• 0 01111110 0000000 00000000 00000000

e) 0.666666

• 0 01111110 0101010 10101010 10101010

f) 3.141593

• 0 10000000 1001001 00001111 11011100

21/03/2012 20

Page 21: Fondamenti di Informatica 1 - uniroma2.it · Fondamenti di Informatica - 1 Esercizi A.A. 2011/2012. Esercizio. Esercizio. Esercizio. Esercizio. Esercizio ... Convertire in binario

Svolgimento esercizio a)a)1.0

Poiché il numero è positivo il primo bit è 0

Scriviamo il numero 1.0 in forma binaria ed è 1.0, spostiamo il . verso sinistra

lasciando un solo 1 alla sua sinistra e otteniamo 1.0*20

La mantissa è la parte a destra del punto fino a riempire i 23 bit:

00000000000000000000000

L’esponente è pari a 0 ma dobbiamo adattarlo allo standard quindi 0+127 = 127 che

in binario è rappresentato con 1111111

Quindi la soluzione è:

0 01111111 0000000 00000000 00000000

21/03/2012 21