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

Post on 18-Feb-2019

223 views 0 download

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

Fondamenti di Informatica - 1

Esercizi

A.A. 2011/2012

Esercizio

Esercizio

Esercizio

Esercizio

Esercizio

Dato il numero

11000000111100000000000000000000

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

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

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

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)

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)

EserciziConvertire in binario i seguenti numeri in base 10:

1. 0.510 =

2. 0.2510 =

3. 0.12510 =

4. 0.062510 =

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

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

EsercizioConvertire in binario i seguenti numeri decimali

a) 17.562510 =

b) 26.187510 =

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

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

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

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

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

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

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