Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
1
Rappresentazione binaria
• Tutta l’informazione interna ad un computer è
codificata con sequenze di due soli simboli : 0 e 1
– è facile realizzare dispositivi elettronici che discriminano
fra due stati, molto meno se gli stati sono tanti
• L’unità elementare di informazione si chiama bit da
‘binary digit’
2
Rappresentazione binaria (2)
• Vedremo prima come rappresentare i numeri
come sequenze di 0 e 1
3
Notazione posizionale in base 10
• Un numero (es. 5) può essere
rappresentato in molti modi:
– cinque, five, 5, V,
• Rappresentazioni diverse hanno
proprietà diverse
– moltiplicare due numeri in notazione romana
è molto più difficile che moltiplicare due
numeri in notazione decimale ….
• Noi siamo abituati a lavorare con numeri
rappresentati in notazione posizionale in
base 10 4
Notazione posizionale in base 10 (2)
• La rappresentazione di un numero intero in base 10 è una
sequenza di cifre scelte fra 0 1 2 3 4 5 6 7 8 9:
– es: 23, 118, 4
• Il valore di una rappresentazione cN…c0 è dato da
cN * 10N + cN-1 * 10N-1 ….+ c1 * 101 + c0 * 100
esempi :
– 23 = 2*101 + 3 * 100 = 20 + 3
– 118 = 1*102 + 1*101 + 8 * 100 = 100 + 10 + 8
5
Notazione posizionale in base 10 (3)
Vediamo alcune proprietà di questa notazione:
6
Notazione posizionale in base 10 (4)
Vediamo alcune proprietà di questa notazione (cont.):
• Quindi se voglio rappresentare K diverse configurazioni
(cioè 0 1 2 …K-1) mi servono almeno almeno x cifre
dove 10x è la più piccola potenza di 10 >= K
– es : se voglio 25 configurazioni diverse mi servono almeno 2
cifre perché 102=100 è la più piccola potenza
di 10 maggiore di 25
7
Notazione posizionale in base 2
• La rappresentazione di un numero intero in base 2 è una sequenza
di cifre scelte fra 0 e 1:
– es: 10, 110, 1
• Il valore di una rappresentazione cN…c0 è dato da
cN * 2N + cN-1 * 2N-1 ….+ c1 * 21 + c0 * 20
esempi :
– 10 = 1*21 + 0 *20 = 2
– 110 = 1*22 + 1*21 + 0 * 20 = 4 + 2 + 0 = 6
– 1 = 1 *20 = 1
8
Notazione posizionale in base 2 (2)
Per la base due valgono proprietà analoghe a quelle
viste per la base 10 :
• Il massimo numero rappresentabile con N cifre è
11….1 (N volte 1, la cifra che vale di più), pari a 2N-1
– es: su tre cifre il massimo numero rappresentabile è 111
pari a 23-1 = 8 - 1 = 7
9
Notazione posizionale in base 2 (3)
Per la base due valgono proprietà analoghe a quelle viste per
la base 10 (cont.):
• Quindi se voglio rappresentare K diverse configurazioni
(cioè 0 1 2 …K-1) mi servono almeno almeno x cifre dove 2x
è la più piccola potenza di 2 >= K
– es : se voglio 25 configurazioni diverse mi servono almeno 5 cifre
perché 25=32 è la più piccola potenza di 2 maggiore di 25
10
Conversione da base 10 a base 2
Dato un numero X si cerca cN…c0 sua
rappresentazione in base 2
• Conversione per divisione :
– si divide ripetutamente X per 2
– il resto ottenuto nella divisione i-esima è la i-esima
cifra (ci) della rappresentazione binaria
11
Conversione da base 10 a base 2 (2)
Come si converte X nella sua rappresentazione in base 2 cN…c0
usando il metodo della divisione
• Es : convertiamo il numero 13
– 13 / 2 da quoziente 6 e resto 1 (c0)
– 6 / 2 da quoziente 3 e resto 0 (c1)
– 3 / 2 da quoziente 1 e resto 1 (c2)
– 1 / 2 da quoziente 0 e resto 1 (c3)
• La rappresentazione di 13 è 1101
12
La rappresentazione dei numeri
all’interno di un computer
• Usa la notazione binaria
• Ogni numero viene rappresentato con un numero finito
di cifre binarie (bit)
• Numeri di ‘tipo’ diverso hanno rappresentazioni diverse
– es. interi positivi, interi (pos. e neg.), razionali, reali,
complessi
13
La rappresentazione dei numeri
all’interno di un computer (2)
• Alcuni termini utili:
– byte : una sequenza di 8 bit
– word (parola) : 2 o 4 byte (dipende dalla macchina) unità
minima che può essere fisicamente letta o scritta nella
memoria
• Tipicamente gli interi positivi si rappresentano usando
2 o 4 byte
– es. il tipo unsigned int in C (interi senza segno)
usa di solito 4 byte 14
La rappresentazione dei numeri
all’interno di un computer (3)
• Alcuni punti importanti:
– se uso 4 byte (32 bit) posso rappresentare solo i numeri positivi da
0 a 232-1, che sono molti ma non tutti !
– se moltiplico o sommo due numeri molto elevati posso ottenere un
numero che non è rappresentabile
• es: vediamo cosa succede in base 10 con solo 3 cifre :
500 + 636 = 1136 risultato 136
se uso solo 3 cifre non ho lo spazio fisico per scrivere
la prima cifra (1) che viene ‘persa’, è un fenomeno
chiamato overflow 15
La rappresentazione dei numeri
all’interno di un computer (4)
• Interi positivi e negativi:
– es. il tipo int in C usa di solito 4 byte
– ci sono diverse convenzioni di rappresentazione
• es: modulo e segno in cui il primo bit viene riservato al
segno (1 negativo, 0 positivo) e gli altri 31 al modulo
– rimane il problema dell’overflow
16
La rappresentazione dei numeri
all’interno di un computer (5)
• Interi positivi e negativi:
Complemento a due
Stabilito il numero di bit, supponiamo n, il bit più significativo ha peso: -(2n-1)
Sulla base di questa considerazione possiamo riscrivere quella formula che, data
la sequenza di bit, mi esprimeva il valore vero del numero:
NV = - dn-1 2n-1 + dn-2 2n-2 + ...+ d0 20
Data una sequenza di bit che rappresenta un numero relativo
in complemento a due posso ricavare il valore vero del numero
sulla base della relazione appena esposta.
17
La rappresentazione dei numeri
all’interno di un computer (5)
• Interi positivi e negativi:
Complemento a due
Esempi:
N = 0101(C2) NV = -0 × 23 + 1 × 22 + 0 × 21 + 1 × 20 = 4 + 1 = 5
N = 1011(C2) NV = -1 × 23 + 0 × 22 + 1 × 21 + 1 × 20 = -8 + 2 + 1= -5
Sulla base degli esempi possiamo osservare che anche nella rappresentazione in
complemento a 2, così come valeva per la rappresentazione in modulo e
segno, il primo bit mi dice se il numero è positivo o negativo, in
particolare se il primo bit è 0 il numero è positivo, se il primo bit
è 1 il numero è negativo.
18
La rappresentazione dei numeri
all’interno di un computer (6)
• Razionali
– numero finito di cifre periodiche dopo la virgola (ad esempio 3.12 oppure
3.453
– rappresentazione solitamente su 4/8 byte
– rappresentazione in virgola fissa : riservo X bit per la parte frazionaria
• Immagini ‘bitmap’ :
2. Ogni pixel è rappresentato da uno o più bit
000000000000000000000000
000000000011111111000000
000000000010000010000000
Rappresentazione 000000000010000100000000
di un pixel 000000000010001000000000
000000000010010000000000
000000000010100000000000
000000000011000000000000
000000000010000000000000
Rappresentazione di immagini (4)
• Rappresentazioni dei pixel :
– la rappresentazione in ‘toni di grigio’ : un byte per pixel, con 256
gradazioni di grigio per ogni punto (immagini bianco e nero), o più
byte per pixel, per avere più gradazioni possibili
– rappresentazione a colori RGB (red, green, blue): comunemente 3
byte per pixel che definiscono l’intensità di ciascun colore base. In
questo modo ho circa 16 milioni di colori diversi definibili
Rappresentazione di immagini (5)
• Problema :
– la rappresentazione accurata di una immagine dipende
• dal numero di pixel (definizione)
• dalla codifica del pixel
– … e richiede generalmente molta memoria, ad esempio :
tipo defin numero colori num. byte
imm. televisiva 720x625 256 440 KB
SVGA 1024x768 65536 1.5 MB
foto 15000x10000 16milioni 430 MB
Rappresentazione di immagini (6)
• Quindi si cerca di ‘risparmiare’ memoria :
– con l’uso di una ‘tavolozza’ (palette) che contiene il sottoinsieme dei colori
rappresentabili che compare in una foto
• ogni pixel codifica un indice all’interno della tavolozza
– con tecniche di compressione che non codificano ogni pixel in modo autonomo
ma cercano di raggruppare le aree che hanno caratteristiche comuni
• Formati più usati : TIFF (tagged image file format),
GIF (graphics interchange format), JPEG
(Joint photographers expert group)
Algebra di Boole
E’ un’algebra basata su tre operazioni logiche:
● OR
● AND
● NOT
● vero (1)
● falso (0).
Tramite questa algebra si possono comporre espressioni logiche che possono essere vere o false.
40
Algebra di Boole (2)
Le operazioni dell’algebra di Boole sono definite tramite le Tavole di verità.
41
Algebra di Boole (3)
Esempi:
42
Algebra di Boole (4)
Esempio di una tavola di
verità per due espressioni
logiche:
43
Principali funzioni logiche
Porte Logiche
● Sono elementi circuitali che corrispondono alle operazioni logiche e che possono essere
combinati per effettuare operazioni più complesse.
● Ad esempio, tramite le porte logiche possono essere definiti circuiti sommatori.
44
Riferimenti Web
● Informatica Generale - Codifica e Rappresentazione dell’Informazione, Susanna
Pelagatti, Università di Pisa, 2002.
45