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