l’alfabeto binario.scov8.altervista.org › 3a › tpsit › presentazioni › parte4.pdfcodifica...
TRANSCRIPT
-
Codifica dell’informazione 2
La codifica dell’informazione
I sistemi di elaborazione operano al loro interno sol-tanto con segnali a due valori (binari).
I sistemi di elaborazione devono tuttavia scambiare in-formazioni con il mondo esterno in ingresso e in uscita.
Tali informazioni devono essere comprensibili ad unoperatore umano, e assumono prevalentemente laforma di caratteri alfanumerici (numeri decimali, let-tere dell’alfabeto, simboli di punteggiatura, simboli ma-tematici etc..).
Tale apparente incomunicabilita` fra i due linguaggi,viene ricomposta mediante l’adozione di opporture con-venzioni (o codici), mediante le quali è possibile rap-presentare in modo univoco un certo numero di simbolicon configurazioni di bit prestabilite.
-
Codifica dell’informazione 3
La codifica dell’informazione
Si dice alfabeto un insieme non vuoto e finito di simboli detti caratteri.
Ad esempio:
⇒ A = {0, 1} ̀e l’alfabeto binario.
⇒ B= {A, B, C, . . . , X, Y, Z} è l’alfabeto dellelettere latine maiuscole.
Una stringa o parola in un dato alfabeto è una succes-sione di simboli (anche ripetuti) di quell’alfabeto.
Dato un insieme I di oggetti, si dice codificadell’insieme I nell’alfabeto L , un procedimento chepermetta di stabilire una corrispondenza biunivoca fragli elementi di I e un sottoinsieme di parole di L .
-
Codifica dell’informazione 4
La codifica dell’informazione
Siano dati due alfabeti qualunque, A di k simboli e B
di m simboli:
A = {ak−1, ak−2 . . . , a0}
B = {bm−1, bm−2 . . . ,b0}
èsempre possibile codificare l’insiemedelle parole di Anell’alfabetoB e viceversa.
Procedimento:Si possono interpretare i k simboli di A come un siste-ma di numerazione posizionale in base k, e quindi ogniparola di A pu`o essere interpretata come un numerointero nel sistema posizionale di base k.
Analogamente, ogni parola di B pu`o essere interpretatacome un numero intero nel sistema posizionale di basem.
Codificare una parola di A in B equivale ad un cam-biamento di base, da base k a base m.
-
Codifica dell’informazione 5
Esempio di codifica
Sia A = {A, B , C} un alfabeto di 3 caratteri eB = {Rosso, V erde, Giallo, Blu} un alfabeto di 4 caratteri.
Si vuole codificare la seguente stringa di A in B
B C C A B
Per interpretare i simboli di A come un sistema di nu-merazione posizionale in base 3, attribuisco ai simbolidi A i seguenti valori:
A = 2 ; B = 1 ; C = 0
Per interpretare i simboli di B come un sistema di nu-merazione posizionale in base 4, attribuisco ai simbolidi B i seguenti valori:
Rosso = 3 ; Verde = 2 ; Giallo = 1 ; N ero = 0
Da cui:
B C C A B = 1·34+ 0 ·33+ 0 ·32+ 2 ·31+ 1 ·30 = 88(10)
Vale la conversione 88(10) −→ 1120(4), Per cui, infine:
(B C C A B)A −→ (Giallo Giallo Verde N ero)B
-
Codifica dell’informazione 6
Lunghezza di un codice binario
Per rappresentare M simboli diversi (parole), mutua-mente esclusivi, con un codice binario, la lunghezzam della sequenza di bit del codice deve soddisfare laseguente relazione:
m ≥ | log2 M |
-
Codifica dell’informazione 7
Codici decimali pesati a 4 bit
Per rappresentare le 10 cifre distinte dei numeri deci-mali, occorrono codici binari a 4 bit.
Un codice decimale si dice pesato se la relazione cheintercorre tra la cifra decimale D da rappresentare el’insieme delle cifre binarie ad esso associato èdel tipo:
D =m−1.
i=0bi · pi
dove:
→ m : numero di bit del codice
→ bi : generico bit del codice
→ pi : peso corrispondente.
-
Codifica dell’informazione 8
Codice decimale BCD
Il codice decimale BCD (Binary Coded Decimal) èun codice pesato con pesi (8 − 4 − 2 − 1).
Con questa codifica, ogni cifra decimale èrappresentatadal binario puro corrispondente, secondo la seguentetabella:
Decimale Codice BCD
0 0 0 0 01 0 0 0 12 0 0 1 03 0 0 1 14 0 1 0 05 0 1 0 16 0 1 1 07 0 1 1 18 1 0 0 09 1 0 0 1
Con questa codifica, le posizioni del codice da (1 0 1 0)a (11 1 1) non sono utilizzate.
-
Codifica dell’informazione 9
Conversione decimale → binario BCD
Si converte ogni cifra decimale separatamente nel cor-rispondente codice BCD su 4 bit.
ESEMPIO:
Convertire il numero decimale (5902)10 in codice bina-rio BCD.
5
↓
9
↓
0
↓
2
↓
0 1 0 1 1 0 0 1 0 0 0 0 0 0 1 0
-
Codifica dell’informazione 10
Conversione binario BCD → decimale
Si raggruppano le cifre binarie a 4 a 4 e si converteciascun raggruppamento nella corrispondente cifra de-cimale secondo il codice BCD.
ESEMPIO:
Ricavare il valore decimale della sequenza di bit
0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1
sapendo che corrisponde a una codifica BCD.
0 0 0 1
↓
1 0 0 0
↓
0 1 1 1
↓
0 0 1 1
↓
1 8 7 3
-
Codifica dell’informazione 12
Codici alfanumerici binari
Quando, oltre alle cifre decimali, si vogliono anche codi-ficare caratteri (maiuscoli e minuscoli), punteggiatura,simboli matematici etc... occorre estendere il numerodi bit m del codice.
Se M è il numero totale di caratteri per cui si vuoledefinire un codice binario, occorre prevedere unalunghezza di codice m data dalla relazione:
m ≥ | log2 M |
-
Codifica dell’informazione 13
Codice ASCII
Il codice ASCII è di gran lunga il codice alfanumericopiù diffuso per lo scambio di informazioni fra sistemi dielaborazione.
La sigla ASCII significa American Standard Code forInformation Interchange.
Il codice ASCII costituisce di fatto uno standard per lacodifica dell’informazione nei sistemi di elaborazione.
Il codice ASCII standard è codificato su 7 bit, e quindipu`o rappresentare al massimo 27 = 128 simboli diversi.
Esiste una versione del codice ASCII che usa un ottavobit (1 byte). Tale codice viene detto Codice ASCIIesteso, ed è, ad esempio, usato nei personal computerIBM MS/DOS.
-
Codifica dell’informazione 14
-
Codifica dell’informazione 15
Codice UNICODE
Lo standard Unicode è stato introdotto per rappre-sentare caratteri di testo in sistemi informatici, ed èstato assunto come standard internazionale con la siglaISO/IEC 10646.
Unicode propone uno standard per rappresentare icaratteri e simboli di tutti i linguaggi scritti, simbolimatematici etc . . ..
Unicode usa un codice a 16 bit, con cui è possibile co-dificare 216 = ∼ 65, 000 caratteri distinti.
-
Codifica dell’informazione 16
Codici Ridondanti
Per codificare M simboli distinti (parole) con un codicebinario, occorrono m ≥ | log2 M | bit.
Un codice si dice ridondante, quando codifica gli Msimboli distinti con n = m + r bit, ciò e usando r bit ag-giuntivi rispetto agli m bit strettamente richiesti dallacodifica binaria.
L’aggiunta di bit di ridondanza permette di costruirecodici che consentono di controllare eventuali errori ditrasmissione.
Si hanno due tipi di codici ridondanti:
¤ Codici a rivelazione di errore - Consentono di indi-viduare la presenza di un errore;
¤ Codici a correzione di errore - Consentono non solodi individuare la presenza di un errore, ma anchedi identifcarne la posizione in modo da poterlo cor-reggere.
-
Codifica dell’informazione 17
Codice BCD con bit di parit`a
Per costruire un codice BCD a rivelazione di errore, sipu`o aggiungere ad ogni parola codice un bit ridondante(r = 1) detto di parita.̀
Il bit di parita` viene posto a 0 o a 1, in modo tale chela somma degli uni nella parola codice sia pari:
Decimale Codice BCD Bit parit̀ a
0 0 0 0 0 01 0 0 0 1 12 0 0 1 0 13 0 0 1 1 04 0 1 0 0 15 0 1 0 1 06 0 1 1 0 07 0 1 1 1 18 1 0 0 0 19 1 0 0 1 0
-
Codifica dell’informazione 18
Conversione decimale → binario BCD
con bit di parit`a
Si converte ogni cifra decimale separatamente nel cor-rispondente codice BCD e si aggiunge il quinto bit diparit`a come da tabella precedente.
ESEMPIO:
Convertire il numero decimale (4765)10 in codice bina-rio BCD con bit di parit`a.
4
↓
7
↓
6
↓
5
↓
0 1 0 0 1 0 1 1 1 1 0 1 1 0 0 0 1 0 1 0
-
Codifica dell’informazione 19
Codici Ridondanti - Distanza di Hamming
La distanza di Hamming fra due parole codice, si ot-tiene contando il numero di bit diversi in posizioni cor-rispondenti:
1 0 1 0 0 1Distanza di Hamming=3
0 0 1 1 1 1
In un codice a rivelazione di errore la distanza di Ham-ming fra due parole codice deve essere ≥ 2, in quantoun errore singolo deve produrre una sequenza di bit chenon appartiene a nessuna parola codice.
In un codice a correzione di errore singolo la distanzadi Hamming fra due parole codice deve essere ≥ 3, inquanto un errore singolo deve produrre una sequenzadi bit che ha distanza di Hamming 1 dalla parola o-riginaria e distanza di Hamming almeno 2 rispetto aogni altra parola codice, in modo da identificare univo-camente la parola originaria.