Fondamenti di Informatica - 1
Esercizi
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 0000
s
esponente
mantissa
-1 * (1.
mantissa
) * 2
(esponente-127)
-1 * (1
.111
) * 2
(129-127)
-1 * (1
.111
) * 2
(2) =
-111.1 = -7.5
Esercizio
Calcolare 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
Soluzione
Calcolare 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
Calcolare 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 )
Esercizi
Convertire in binario i seguenti numeri in base 10:
1. 0.5
10=
2. 0.25
10=
3. 0.125
10=
4. 0.0625
10=
Soluzione
Convertire in binario i seguenti numeri in base 10:
1. 0.5
10= 0.1
22. .25
10= 0.01
23. .125
10= 0.001
24. .0625
10= 0.0001
2Svolgimento esercizi 1 e 4
1)0.5
10
.
5*2=1 parte intera=1 parte frazionaria restante =0
.5
10= (.1)
24)0.0625
10
.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
.0625
10= (.0001)
2Esercizio
Convertire in binario i seguenti numeri decimali
a) 17.5625
10=
b) 26.1875
10=
a) 17.5625
10Per 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)
2Per 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
.5625
10= (.1001)
2Sommando i risultati 17.5625
10 =
(10001.1001)
2
21/03/2012 15
21/03/2012 16
b) 26.1875
10Per 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)
2Per 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
.1875
10= (.0011)
2Sommando i risultati 26.1875
10 =
(11010.0011)
2
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
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 19