La codifica digitale - UniPamath.unipa.it/~epifanio/Elementi_Informatica/lezione3bn.pdf · sistema...
Transcript of La codifica digitale - UniPamath.unipa.it/~epifanio/Elementi_Informatica/lezione3bn.pdf · sistema...
La codifica digitale
Elementi di Informatica Chiara Epifanio
Il computer e il sistema binario
Il computer elabora esclusivamente numeri.
Ogni immagine, ogni suono, ogni informazione per essere “compresa” e rielaborata dal calcolatore deve essere prima trasformata in una sequenza di numeri.
Il computer usa il passaggio di corrente elettrica come“alfabeto” per codificare tutte le informazioni.
La corrente elettrica ha solo due stati: “presenza” e “assenza”. Pertanto l’alfabeto usato dal computer è un alfabeto binario.
Codifica digitale
Elementi di Informatica Chiara Epifanio
Il computer e il sistema binario
Ogni informazione elaborata dal computer è costruita con due soli simboli: “0” e “1”.
Bisogna tradurre ogni informazione in sequenze di 0 e 1.
La “traduzione” si chiama codifica e poiché si usano solo due simboli allora si chiama codifica binaria.
I simboli 0 e 1 si chiamano anche bit (contrazione delle parole inglesi: binary digit = cifra binaria).
Codifica digitale
Elementi di Informatica Chiara Epifanio
Il computer e il sistema binario
Per quanto detto il computer è capace di riconoscere due soli stati della corrente e ad ognuno di essi associa un valore (0 o 1).
Un linguaggio che si basa su due soli caratteri si chiama “linguaggio binario”.
Poiché nel caso del calcolatore i caratteri sono due numeri (0 o 1), diciamo che il calcolatore fa uso del sistema (di numerazione) binario.
Codifica digitale
Elementi di Informatica Chiara Epifanio
Il computer e il sistema binario
Quindi ogni dato immesso nel calcolatore, o ogni istruzione impartita, deve essere scritta utilizzando stringhe (sequenze) di 0 e 1, ossia in linguaggio binario.
Il linguaggio binario è il linguaggio macchina, ossia quello compreso e usato dalla macchina (il computer) per eseguire le istruzioni o immagazzinare i dati.
Quando usiamo il computer il Sistema Operativo “traduce”ogni nostro comando in una stringa di 0 e 1 (linguaggio macchina), per permettere al computer di eseguire le istruzioni impartite.
Codifica digitale
I sistemi di numerazione
Elementi di Informatica Chiara Epifanio
I sistemi di numerazione
Il SISTEMA NUMERICO, detto anche SISTEMA DI NUMERAZIONE, è l’insieme di tutti i numeri rappresentati usando uno stesso insieme di regole.
Ogni numero può essere rappresentato seguendo regole diverse, quindi lo stesso numero può avere rappresentazione diversa (in relazione alle regole seguite) malgrado il suo valore non cambi.
Sistemi di numerazione
12 1100XIIBase 10 Base 2Numerazione
Romana
Elementi di Informatica Chiara Epifanio
I sistemi di numerazione
Ogni numero è rappresentato mediante dei segni elementari che si ripetono nella costruzione dei vari numeri.
Questi segni elementari si chiamano cifre.
Ogni cifra deve essere distinta dalle altre.
Il numero di cifre necessarie per rappresentare tutti i numeri può essere finito o infinito.
Sistemi di numerazione
Elementi di Informatica Chiara Epifanio
I sistemi di numerazione possono essere distinti in due grandi categorie:
Tipi di sistemi di numerazione
Sistemi addizionali Sistemi posizionali
Sistemi di numerazione
Sistemi di numerazione
Elementi di Informatica Chiara Epifanio
I sistemi numerici addizionali
I sistemi numerici addizionali sono quelli concettualmente più semplici, ma più difficili da capire (almeno per noi che utilizziamo correntemente un sistema numerico posizionale).Nei sistemi numerici addizionali ogni cifra assume sempre lo stesso valore indipendentemente dalla posizione occupata.Tra due cifre di una sequenza è sottointesa un’operazione.Non è necessario rappresentare lo zero.Sono necessari infiniti simboli diversi (cifre) per poter rappresentare tutti i numeri (infiniti).Il sistema addizionale più noto è quello romano.
Sistemi numerici addizionali
Elementi di Informatica Chiara Epifanio
Il sistema di numerazione romano
Le cifre del sistema di numerazione romano sono:
I=1 V=5 X=10 L=50 C=100 D=500 M=1000
XX = 10+10 = 20
LXII = 50+10+1+1 = 62
XC = -10+100 = 90
Come si vede la lettera X vale sempre 10 indipendentemente dalla posizione che occupa.
Sistemi numerici addizionali
10 10
10
10
Elementi di Informatica Chiara Epifanio
Nei sistemi numerici posizionali ogni cifra assume un valore diverso in relazione alla posizione occupata.Il numero di “cifre elementari distinte” si chiama base del sistema di numerazione.Tra due cifre di una sequenza è sottointesa un’operazione di somma di prodotti per una potenza della base.È necessario definire una cifra che abbia valore nullo.Sono sufficienti un numero finito di cifre (almeno due) per poter rappresentare tutti i numeri.Il sistema posizionale più noto è quello decimale.
I sistemi numerici posizionali
Sistemi numerici posizionali
Elementi di Informatica Chiara Epifanio
Il sistema di numerazione decimale
Nel sistema decimale si usano 10 cifre distinte (0,1,2,3,4,5,6,7,8,9) per rappresentare qualsiasi numero. Quindi la base del sistema decimale è 10.
Per ottenere il valore di un numero decimale bisogna moltiplicare ogni cifra del numero per una potenza di 10 con esponente uguale alla posizione occupata dalla cifra, partendo dalla fine, meno uno; quindi sommare questi prodotti.
Con n “posti” si possono rappresentare esattamente 10n
numeri distinti a partire da 0.
Sistemi numerici posizionali
Elementi di Informatica Chiara Epifanio
Il sistema di numerazione decimale
Consideriamo il numero 34553
34553 = 3 x 104 + 4 x 103 + 5 x 102 + 5 x 101 + 3 x 100
Infatti:
3 x 10.000 + 4 x 1.000 + 5 x 100 + 5 x 10 + 3 x 1 =
30.000 + 4.000 + 500 + 50 + 3 = 34553
Sistemi numerici posizionali
Elementi di Informatica Chiara Epifanio
Il sistema di numerazione decimale
Quindi nel numero 34553 la stessa cifra ha un valore diverso in relazione alla posizione occupata.
3 4 5 5 3
3
50
500
4.000
30.000
Sistemi numerici posizionali
Elementi di Informatica Chiara Epifanio
Il sistema di numerazione decimale
I numeri negativi si rappresentano col segno meno.
Il numero -8888 è costituito tutto dalla stessa cifra (8), ma ogni cifra ha un valore diverso in relazione alla posizione che occupa.
- 8 8 8 8
8
80
800
8.000
Sistemi numerici posizionali
Elementi di Informatica Chiara Epifanio
Il sistema di numerazione in base n
Possiamo scegliere n cifre diverse e creare un sistema di numerazione in base n.
Per esempio in base 16 (sistema esadecimale) le cifre sono: 0 1 2 3 4 5 6 7 8 9 A B C D E F.
Per ottenere il valore di un numero decimale bisogna moltiplicare ogni cifra del numero per una potenza di 16 con esponente uguale alla posizione occupata dalla cifra, partendo dalla fine, meno uno; quindi sommare questi prodotti.
Con n posti si possono rappresentare esattamente 16n numeri distinti a partire da 0.
Sistemi numerici posizionali
Infatti…
Teorema:Sia b un intero non negativo (base).Ogni intero n>1 può essere espresso in maniera unica nella forma
n = a0·b0 + a1·b1 + a2·b2 +........... + am·bm
dove m è un intero non negativo e 0≤ ai <b.
Questo teorema ci permette di rappresentare i numeri in qualunque base b.La sequenza sarà la rappresentazione del numero n in base b.
In particolare se b=2, allora otteniamo la rappresentazione binaria di n. Nel sistema binario quindi ogni numero sarà espresso con le sole cifre 0 e 1 (<b=2).Se quindi ci viene dato un numero non in forma decimale, per determinare qual è il suo valore in forma decimale, basta applicare la formula del teorema.
Elementi di Informatica Chiara Epifanio
Il sistema di numerazione esadecimale
Il numero 5BF2 è uguale a:
5 B F 2
2x160=2
15x161=240
11x162=2816
5x163=20480
Pertanto sommando i prodotti ottenuti si ha che:(5BF2)16 = (23538)10
Elementi di Informatica Chiara Epifanio
Il sistema di numerazione binario
Nel sistema binario si usano solo 2 cifre distinte (0,1) per rappresentare qualsiasi numero.
La base del sistema binario è 2.
Per ottenere il valore di un numero decimale bisogna moltiplicare ogni cifra del numero per una potenza di 2 con esponente uguale alla posizione occupata dalla cifra, partendo dalla fine, meno uno; quindi sommare questi prodotti.
Con n posti si possono rappresentare esattamente 2n numeri distinti a partire da 0.
Sistemi numerici posizionali
Elementi di Informatica Chiara Epifanio
Il sistema di numerazione binario
Consideriamo il numero (1001010)2
(1001010)2 <-> 1 x 26 + 0 x 25 + 0 x 24 + 1 x 23 + 0 x 22 +1 x 21 + 0 x 20
Infatti:
1 x 64 + 0 x 32 + 0 x 16 + 1 x 8 + 0 x 4 + 1 x 2 +0 x 1 = 64 + 8 + 2 = (74)10
Sistemi numerici posizionali
Elementi di Informatica Chiara Epifanio
Il sistema di numerazione binario
Quindi nel numero (1001010)2 la stessa cifra ha un valore diverso in relazione alla posizione occupata.
1 0 0 1 0 1 0
0
21=2
0
23=8
0
0
26=64
Sistemi numerici posizionali
Elementi di Informatica Chiara Epifanio
Il sistema di numerazione binario
Il numero (111111)2 = 63 è costituito tutto dalla stessa cifra (1), ma ogni cifra ha un valore diverso in relazione alla posizione che occupa.
1 1 1 1 1 1
20=1
21=2
22=4
23=8
24=16
25=32
Sistemi numerici posizionali
Conversione dal sistema decimale al sistema binario: il metodo delle divisioni successive
1) Dividere il numero per 2 e conservare il resto della divisione,
2) ripetere il passo precedente sul risultato finché non si arriva ad ottenere 1,
3) leggere 1 e tutti i resti dall’ultimo al primo per ottenere il numero in forma binaria.
Elementi di Informatica Chiara Epifanio
Metodo delle divisioni successive
3 91
219 2
91 2
41 220 2
10
39 = 1
Sistemi numerici posizionali
Elementi di Informatica Chiara Epifanio
Metodo delle divisioni successive
3 9 219 2
9 2
4 22 2
1
39 =1 0 0 1 1 1
Sistemi numerici posizionali
Un secondo metodo
1) Trovare la più grande potenza di 2 più piccola del numero,
2) sottrarla al numero,
3) ripetere il procedimento sulla differenza fino ad arrivare al valore 1.
4) Scrivere 1 in corrispondenza di ogni potenza di 2 presente e 0 per quelle che non figurano.
Sia n = 155
155 - 128 = 2727 - 16 = 1111 - 8 = 33 - 2 = 11 - 1 = 0
Sia n = 155
155 - 128 = 2727 - 16 = 1111 - 8 = 3
Sia n = 155
155 - 128 = 2727 - 16 = 1111 - 8 = 33 - 2 = 1
Sia n = 155
155 - 128 = 2727 - 16 = 1111 - 8 = 33 - 2 = 11 - 1 = 0
Sia n = 155
155 - 128 = 2727 - 16 = 11
Sia n = 155
155 - 128 = 2727 - 16 = 1111 - 8 = 33 - 2 = 11 - 1 = 0
155 = 27 +24 +23 +21 +20 → 10011011
Sia n = 155
155 - 128 = 27 20 = 121 = 222 = 423 = 824 = 1625 = 3226 = 6427 = 12828 = 256
Conversione secondo le potenze di 2
Elementi di Informatica Chiara Epifanio
La somma di due numeri binari
La somma di due numeri binari viene eseguita in modo analogo a quella dei numeri decimali.
I numeri binari si sommano a due a due.
Si allineano i due numeri a partire dall’ultima cifra e si sommano ricordando che:
1 + 1 = 0 col resto di 10+ 1 = 1 col resto di 01+ 0 = 1 col resto di 00+ 0 = 0 col resto di 0
Sistemi numerici posizionali
Elementi di Informatica Chiara Epifanio
La somma di due numeri binari
8
30
38
+=
0011111
011001
00
Elementi di Informatica Chiara Epifanio
La somma di due numeri binari
+=
0011111
011001
00
+=
1011011
011001
11
1011
01
91
59
150
Sistemi numerici posizionali
Elementi di Informatica Chiara Epifanio
La differenza di due numeri binari
La differenza di due numeri binari viene eseguita in modo analogo a quella dei numeri decimali.
I numeri binari si sottraggono a due a due.
Si allineano i due numeri a partire dall’ultima cifra e si sottraggono ricordando che:
0 – 1 = 1 con un “prestito”–1 – 1 = 0 con un “prestito”–1 – 0 = 1 con un “prestito”
Sistemi numerici posizionali
Elementi di Informatica Chiara Epifanio
La differenza di due numeri binari
=1011011
11
1011
0001 00
– 91
59
32
Sistemi numerici posizionali
Elementi di Informatica Chiara Epifanio
La differenza di due numeri binari
=1011011
11
1011
0001 00
–
=001
1111 01011
0
1111 01
–
Sistemi numerici posizionali
101
46
55
Elementi di Informatica Chiara Epifanio
La rappresentazione in complemento in base due
Complemento a due
Se dobbiamo rappresentare i numeri interi negativi nel sistema binario (e in particolare nel computer) non possiamo utilizzare il segno meno, ma dobbiamo utilizzare una particolare codifica detta: “complemento a due”.
La rappresentazione in complemento a due può avvenire solo se tutti i numeri sono rappresentati utilizzando lo stesso numero di cifre (stessa lunghezza).
Con questo tipo di rappresentazione ogni successione di 0 e 1 di lunghezza n fissata rappresenta numeri positivi o negativi.
Elementi di Informatica Chiara Epifanio
La rappresentazione in complemento in base due
Supponiamo di utilizzare n cifre per rappresentare il numero x.
La rappresentazione del numero x in complemento a due coincide con la rappresentazione binaria del numero 2n-x.
Ricordiamo che con n cifre binarie possiamo rappresentare 2n numeri interi che, con questa rappresentazione, saranno in parte positivi e in parte negativi.
N.B.: Sfruttando le proprietà della numerazione binaria èstato definito un altro metodo empirico per calcolare il complemento in base due di un numero: si trasformano le cifre 0 in 1 e viceversa e si somma 1 al valore ottenuto.
Complemento a due
Esempio
Vogliamo complementare in base due il numero 10011001.
Primo metodo:(10011001)’=28-10011001=
100000000-10011001=01100111
Secondo metodo:10011001
01100110
01100111
Elementi di Informatica Chiara Epifanio
Notiamo che con la rappresentazione in complemento a due:
I numeri che cominciano con 1 sono tutti negativi.
I numeri che cominciano con 0 sono tutti positivi.
Utilizzando n cifre si possono rappresentare 2n–1 numeri negativi e 2n–1–1 numeri positivi oltre lo zero.
Non si ha bilanciamento tra numeri positivi e negativi perchélo zero viene rappresentato come un numero positivo.
Complemento a due