Numeri Frazionari Numeri Frazionari

Esercizi Fond.
Numeri Frazionari
Conversione da decimale a binario:
si convertono separatamente parte intera e parte
frazionaria per la parte intera si segue la procedura di
conversione già vista; per la parte frazionaria si
effettuano moltiplicazioni successive per 2 separando la
parte intera (0 o 1) da quella frazionaria così ottenuta,
finchè si raggiunge la precisione richiesta
29
Esercizi Fond.
Numeri Frazionari
Esempio: convertire in binario (6.25)10
30
1
Esercizi Fond.
Numeri Frazionari
Si noti che in generale ad un numero
frazionario decimale con un numero limitato
di cifre può corrispondere un numero
frazionario binario con un numero infinito di
cifre. In tal caso ci si ferma quando si
raggiunge la precisione desiderata.
Esempio: convertire in binario (0.3)10 con la precisione di
almeno 1/100
31
Esercizi Fond.
Numeri Frazionari
32
2
Esercizi Fond.
Esercizi – numeri frazionari
Convertire in binario i seguenti numeri
· (0.625)10
[R. (0.101)2]
· (0.03125)10
[R. (0.00001)2]
· (0.828125)10
[R. (0.110101)2]
33
Esercizi Fond.
Esercizi – numeri frazionari
Calcolare a quale numero decimale corrispondono i seguenti numeri binari
frazionari:
· (0.1101001)2
[R. (0.8203125)10]
· (1011.0101)2
[R. (11.3125)10]
· (11.10011)2
[R. (3.59375)10]
34
3
Esercizi Fond.
Rappresentazione in
floating-point
Utilizzata per rappresentare numeri frazionari nella notazione esponenziale:
numero = (mantissa) * 2 esponente
Il formato più utilizzato è quello IEEE P754, rappresentato su 32 bit nel
seguente modo:
L'esponente è rappresentato come numero senza segno su 8 bit in eccesso
127, cioè i valori da -127 a +127 sono messi in corrispondenza con i
valori da 0 a 254, per non dover gestire anche il segno dell'esponente.
35
Esercizi Fond.
Floating-point: mantissa
La mantissa è codificata in modulo e segno su 24 bit;
· la mantissa è sempre normalizzata nella forma 1.XXXXX
· si rappresenta solo la parte frazionaria nei 23 bit meno significativi
· il peso del MSB del modulo è 2 –1 · il segno è dato dal MSB dei 32 bit
La rappresentazione di un numero è quindi nella forma:
numero = ± 1.XXXXX × 2(YYYY )2
36
4
Esercizi Fond.
Conversione decimale > IEEE
P754
Per trasformare un numero decimale N nella sua rappresentazione in floatingpoint, si deve:
· trasformarlo in binario
· trasformarlo nella forma normalizzata ± 1.XXXXX × 2(YYYY )2
· il segno è 0 per i numeri positivi, 1 per i negativi
· l'esponente è pari a 127 + n, dove n è il numero di posizioni di cui è stato
spostato il punto decimale dalla forma binaria a quella normalizzata
· la parte frazionaria della mantissa normalizzata (XXXXX) si memorizza nei
23 bit meno significativi
37
Esercizi Fond.
Esempio – floating-point
Convertire in formato floating-point IEEE P754 il numero 13.2510
· il numero è positivo, per cui il segno è 0 · il numero convertito in binario
(1101.01)2
puro è:
spostando il punto decimale di 3 posizioni, il numero si normalizza in
(1.10101)2 * 23
· l'esponente in eccesso 127 vale:
127 + 3 = 130 = (10000010)2
La rappresentazione richiesta è:
0 | 10000010 | 10101000000000000000000
38
5
Esercizi Fond.
Conversione IEEE P754 >
decimale
L'interpretazione di un numero è piuttosto complicata: chiamando s il segno, e
l'esponente, ed m la mantissa, si possono avere i seguenti casi:
· e = 0, m = 0: il valore è (-1)s × (0), cioè +0 o -0
· e = 0, m != 0: il numero è nella forma non normalizzata
·
0 < e < 255: il numero è nella forma
· e = 255, m = 0:il valore è (-1) × INF, cioè un numero infinitamente grande o piccolo
(+ INF o - INF)
. e = 255, m != 0: non è un numero valido (detto NAN, Not A Number); può essere
usato per codificare informazioni di errore
39
Esercizi Fond.
Esercizi – codifica IEEE P754
Rappresentare in formato IEEE P754 i seguenti numeri:
(5.0)10
[R. 0 10000001 0100 … 0]
(-9.25)10
[R. 1 10000010 0010100 … 0]
(12.8125)10
[R. 0 10000010 100110100 … 0]
40
6
Esercizi Fond.
Esercizi – codifica IEEE P754
Dati i seguenti numeri in formato IEEE P754, dire a quale numero decimale
corrispondono:
· 0 10000001 010010 … 0
[R. 5.125]
· 1 10001101 01110 … 0
[R. –23552.0]
· 0 01111101 01010 … 0
[R. 0.328125]
41
Esercizi Fond.
Codifica dell'informazione non
numerica
Tradurre in codice ASCII : "Sta Laurel?"
[R. 083 116 097 110 032 076 097 117 114 101 108 063]
Tradurre da codice ASCII in caratteri alfabetici: "079 108 105 118 101
114 032 072 097 114 100 121 033"
[R. Oliver Hardy!]
42
7
Esercizi Fond.
Codifiche
Un codice deve permettere di risalire dalla codifica al simbolo
rappresentato:
per questo motivo una stringa binaria su un certo numero di bit ha più
interpretazioni, a seconda della codifica che si considera.
Ad esempio, la stringa binaria 1101010 rappresenta:
· il numero 106 in binario puro
· il numero –42 in modulo e segno
· il numero –22 in complemento a due
· il carattere 'j' nella codifica ASCII
43
Esercizi Fond.
Codifica dell'informazione non
numerica
y
x
44
8
Esercizi Fond.
occupazione=
(profondità) x (numero di pixel)
Es:
X=320 (numero pixel in orizzontale)
Y=240 (numero pixel in verticale)
Numero Pixel(Npx)=320*240 = 76800
Profondita’(p)= bianco-nero ->2 livelli 1 bit
a) toni di grigio -> 256 livelli 8 bit
b) a colori ->256 livelli (o colori) 8 bit
c) a colori -> 65536 livelli 16 bit
d) a colori -> 16777216 livelli 24 bit
45
Esercizi Fond.
Occupazione=
(profondità) x (numero di pixel)
Dimensione immagine: Npx*p
a) Oc=76800* 1 = 76800 bit-> byte Oc/8 = 9600
b) Oc= 76800*8 = 614400 bit-> byte Oc/8 = 76800
c) Oc= 76800*8 = 614400 bit-> byte Oc/8 = 76800
d) Oc= 76800*16 = 1228800 bit-> byte Oc/8 = 153600
e) Oc= 76800*24 = 1843200 bit-> byte Oc/8 = 230400
46
9
Esercizi Fond.
Altezza in Larghezza
cm
in cm
Dimensioni Dimensioni in
file jpeg in
file bmp in
Kbyte16,8
Kbyte 16,8
milioni di
milioni di
colori
colori
Altezza in
pixels
Larghezza
in pixel
Area in
pixels
320
240
76.800
4,064
3,048
230.000
45
640
480
307.200
8,128
6,096
900.000
120
800
600
480.000
10,16
7,62
1.400.000
165
1.024
768
786.432
13,0048
9,7536
2.400.000
235
1.280
1.024
1.310.720
16,256
13,0048
3.700.000
335
1.600
1.200
1.920.000
20,32
15,24
6.000.000
470
1.920
1.440
2.764.800
24,384
18,288
8.300.000
550
2.098
1.573
3.300.154 26,6446
19,9771
10.000.000
630
2.240
1.680
3.763.200
28,448
21,336
11.300.000
800
2.560
1.920
4.915.200
32,512
24,384
15.000.000
1030
47
Esercizi Fond.
Costruzione tabelle di verita’
Per costruire la tabella di verità di un'espressione booleana:
· semplificare l'espressione mediante teoremi dell'algebra booleana, se
possibile
· calcolare i termini parziali della funzione riducendoli alle operazioni
fondamentali
Esempio: calcolare la tabella di verità della funzione:
F((a,b,c)) = a × b + c
48
10
Esercizi Fond.
Costruzione tabelle di verita’
49
Esercizi Fond.
Esercizi – tabelle di verita’
Determinare le tabelle di verità delle seguenti funzioni:
50
11
Esercizi Fond.
Esercizi – tabelle di verita’
Determinare le tabelle di verità delle seguenti funzioni:
51
12