La codifica digitale - Università degli Studi di...

38
La codifica digitale

Transcript of La codifica digitale - Università degli Studi di...

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