l’alfabeto binario.scov8.altervista.org › 3a › tpsit › presentazioni › parte4.pdfcodifica...

18

Upload: others

Post on 28-Jan-2021

0 views

Category:

Documents


0 download

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.