Andrea Bobbio CODIFICA DELL'INFORMAZIONE E CODICI BINARI Anno Accademico 1996-1997 1 Codiæca dell'informazione 2 La codiæca dell'informazione sistemi di elaborazione operano al loro interno soltanto I con segnali a due valori èbinariè. sistemi di elaborazione devono tuttavia scambiare informazioni I con il mondo esterno in ingresso e in uscita. informazioni devono essere comprensibili ad un o- Tali umano, e assumono prevalentemente la for- peratore di caratteri alfanumerici ènumeri decimali, letterma dell'alfabeto, simboli di punteggiatura, simboli matematici etc..è. apparente incomunicabilitça fra i due linguaggi, viene Tale ricomposta mediante l'adozione di opporture con- èo codiciè, mediante le quali çe possibile rappresentarvenzioni in modo univoco un certo numero di simboli con conægurazioni di bit prestabilite.
= m,1 X D b i æ p i i=0 Codiæca dell'informazione 3 Unicitça e lunghezza di un codice rappresentare M simboli diversi èparoleè, mutuamente Per esclusivi, con un codice binario, la lunghezza della sequenza di bit del codice deve soddisfare la m relazione: seguente m ç d log 2 M e Codiæca dell'informazione 4 Codici decimali pesati a 4 bit Command not found. Per rappresentare le 10 cifre ZZ: distinte dei numeri decimali, occorrono codici binari a 4 bit. codice decimale si dice pesato se la relazione che Un tra la cifra decimale D da rappresentare e intercorre l'insieme delle cifre binarie ad esso associato çe del tipo: dove:! m : numero di bit del codice! b i : generico bit del codice! pi : peso corrispondente.
Decimale Codice BCD Codiæca dell'informazione 5 Codice decimale BCD codice decimale BCD èbinary Coded Decimalè çe codice pesato con pesi è8, 4, 2, 1è. un questa codiæca, ogni cifra decimale çe rappresentata Con binario puro corrispondente, secondo la seguente dal tabella: 0 0 0 0 0 0 0 0 1 1 0 0 1 0 2 0 0 1 1 3 0 1 0 0 4 0 1 0 1 5 0 1 1 0 6 0 1 1 1 7 1 0 0 0 8 1 0 0 1 9 questa codiæca, le posizioni del codice da è1010è Con è1 1 1 1è non sono utilizzate. a Codiæca dell'informazione 6 Conversione decimale! binario BCD converte ogni cifra decimale separatamente nel Si codice BCD su 4 bit. corrispondente il numero decimale è5902è10 in codice Convertire BCD. binario 5 9 0 2 è è è è 0101 1001 0000 0010
0011 0101 35 10 Codiæca dell'informazione 7 Conversione binario BCD! decimale raggruppano le cifre binarie a 4 a 4 e si converte Si raggruppamento nella corrispondente cifra de- ciascun cimale secondo il codice BCD. Ricavare il valore decimale della sequenza di bit 0001100001110011 sapendo che corrisponde a una codiæca BCD. 0001 1000 0111 0011 è è è è 1 8 7 3 Codiæca dell'informazione 8 Somme in binario BCD di somma aritmetica in codice binario L'operazione si esegue sommando, in binario, le cifre di BCD peso, con opportuni aggiustamenti dovuti alle ugual della codiæca BCD. peculiaritça 0011 + 23 10 + 0010 0010 12 10 0001 risultato çe corretto perchçe non c'çe riporto su nessuna cifra.
0011 1011?10 0011 1011?10 Codiæca dell'informazione 9 Regola generale per somme in BCD di somma aritmetica in codice binario L'operazione si esegue sommando, in binario, le cifre di ugual BCD Se la somma fornisce una conægurazione non permessa, peso. oppure si ha riporto, occorre ancora sommare valore 0 1 1 0 è= 6 10è. L'eventuale riporto si somma il cifre di peso superiore. alle 1001 + 29 10 + 0010 0010 12 10 0001 cifra calcolata 1011 non fa parte delle cifre ammesse La codice BCD. codice BCD salta dalla cifra 1001 = dal 10è alla cifra 0000 = è0 10è con un salto di 6 unitça è9 corrispondente codiæca binaria. nella Codiæca dell'informazione 10 Regola generale per somme in BCD ESEMPIO èsegueè: 1001 + 29 10 + 0010 0010 12 10 0001 cifra calcolata 1011, che non fa parte delle cifre Alla dal codice BCD, si devono aggiungere le 6 ammesse mancanti, e sommare l'eventuale riporto alla cifra unitça peso superiore. di è1è 1011 + 0011 0110 0000 0001,! 41 10 0100
1000 18 10 0001 0001?10 0100 0100 0111,! 47 10 Codiæca dell'informazione 11 Regola generale per somme in BCD è1è 1001 + 29 10 + 0010 cifra calcolata 0001, fa parte delle cifre ammesse dal La BCD, ma il risultato çe errato. Avendo ottenuto codice riporto si devono aggiungere le 6 unitça mancanti un 1001 = è9 10è alla cifra 0000 = è0 10è, e sommare da l'eventuale riporto alla cifra di peso superiore. 0001 + 0100 0110 0000 Codiæca dell'informazione 12 Codice riæesso ègrayè codici riæessi sono codici in cui le rappresentazioni I due numeri consecutivi diæeriscono per un solo bit. di applicazione nelle conversioni analogicodigitale, Trovano in quanto, nel passaggio da un numero rappre- al successivo, si evita di passare attraverso possibilsentato conægurazioni spurie èdovute al non simultaneo cambiamento di tutti i bit del codiceè. codice Gray viene ottenuto seguendo questo procedimento: 1. Si scrivono i primi due bit f0; 1g; 2. Si riæettono rispetto ad un ipotetico asse; Si aggiunge uno 0 nella parte alta e un 1 nella parte 3. bassa; Si torna a 2è æno al raggiungimento della 4. preæssata del codice. dimensione
Codiæca dell'informazione 13 Generazione codice Gray 0 00 0 riæessione 1 aggiungo 0 01 1 aggiungo 1 11 1 10 0 00 000 00 01 001 01 11 aggiungo 0 011 11 riæessione 10 010 10 110 10 aggiungo 1 111 11 101 01 100 00 Codiæca dell'informazione 14 Generazione codice Gray èsegueè 000 0000 000 001 0001 001 011 0011 011 010 0010 010 110 0110 110 111 0111 111 101 aggiungo 0 0101 101 riæessione 100 0010 100 1100 100 aggiungo 1 1101 101 1111 111 1110 110 1010 010 1011 011 1001 001 1000 000
Codiæca dell'informazione 15 Codice Gray a 4 bit Codice Gray Valore Decimale 0 0000 1 0001 2 0011 3 0010 4 0110 5 0111 6 0101 7 0100 8 1100 9 1101 10 1111 11 1110 12 1010 13 1011 14 1001 15 1000 Codiæca dell'informazione 16 Codici a barre
Codiæca dell'informazione 17 Codici alfanumerici oltre alle cifre decimali, si vogliono anche codiæcare Quando, caratteri èmaiuscoli e minuscoliè, punteggiatura, matematici etc... occorre estendere il numero simboli bit m del codice. di M çeilnumero totale di caratteri per cui si vuole deænire Se un codice binario, occorre prevedere una lunghezza di codice m data dalla relazione: m ç d log2 M e Codiæca dell'informazione 18 Codice ASCII codice ASCII çe di gran lunga il codice alfanumerico diæuso per lo scambio di informazioni fra sistemi di piçu elaborazione. sigla ASCII signiæca American Standard Code for La Interchange. Information codice ASCII costituisce di fatto uno standard per la dell'informazione nei sistemi di elaborazione. codiæca
ASCII simbolo ASCII simbolo ASCII simbolo 0000000 NUL 0101010 * 1010101 U 0000001 SOH 0101011 + 1010110 V 0000010 STX 0101100, 1010111 W 0000011 ETX 0101101-1011000 X 0000100 EOT 0101110. 1011001 Y 0000101 ENQ 0101111 / 1011010 Z 0000110 ACK 0110000 0 1011011 [ 0000111 BEL 0110001 1 1011100 \ 0001000 BS 0110010 2 1011101 ] 0001001 HT 0110011 3 1011110 ^ 0001010 NL 0110100 4 1011111 _ 0001011 VT 0110101 5 1100000 ` 0001100 NP 0110110 6 1100001 a 0001101 CR 0110111 7 1100010 b 0001110 SO 0111000 8 1100011 c 0001111 SI 0111001 9 1100100 d 0010000 DLE 0111010 : 1100101 e 0010001 DC1 0111011 ; 1100110 f 0010010 DC2 0111100 < 1100111 g 0010011 DC3 0111101 = 1101000 h 0010011 DC4 0111110 > 1101001 i 0010101 NAK 0111111? 1101010 j 0010110 SYN 1000000 @ 1101011 k 0010111 ETB 1000001 A 1101100 l 0011000 CAN 1000010 B 1101101 m 0011001 EM 1000011 C 1101110 n 0011010 SUB 1000100 D 1101111 o 0011011 ESC 1000101 E 1110000 p 0011100 FS 1000110 F 1110001 q 0011101 GS 1000111 G 1110010 r 0011110 RS 1001000 H 1110011 s 0011111 US 1001001 I 1110100 t 0100000 SP 1001010 J 1110101 u 0100001! 1001011 K 1110110 v 0100010 " 1001100 L 1110111 w 0100011 # 1001101 M 1111000 x 0100100 $ 1001110 N 1111001 y 0100101 % 1001111 O 1111010 z 0100110 & 1010000 P 1111011 { 0100111 ' 1010001 Q 1111100 0101000 ( 1010010 R 1111101 } 0101001 ) 1010011 S 1111110 ~ 1010100 T 1111111 DEL Codiæca dell'informazione 19 Codice ASCII Codiæca dell'informazione 20 Codice ASCII esteso una versione del codice ASCII che usa un ottavo Esiste è1 byteè. Tale codice viene detto Codice ASCII bit ed çe, ad esempio, usato nei personal computer esteso, MSèDOS. IBM
Codiæca dell'informazione 21 Codice ASCII esteso Codiæca dell'informazione 22 Codice ASCII esteso
Decimale Codice BCD Bit paritça Codiæca dell'informazione 23 Codici Ridondanti codiæcare M simboli distinti èparoleè con un codice Per occorrono m ç d log 2 M e bit. binario, codice si dice ridondante, quando codiæca gli M Un distinti con n = m+r bit, cioçe usando r bit ag- simboli rispetto agli m bit strettamente richiesti dalla giuntivi binaria. codiæca di bit di ridondanza permette di costruire L'aggiunta che consentono di controllare eventuali errori di codici trasmissione. Si hanno due tipi di codici ridondanti: Codici a rivelazione di errore - Consentono di 3 la presenza di un errore; individuare Codici a correzione di errore - Consentono non solo 3 di individuare la presenza di un errore, ma an- di identifcarne la posizione in modo da poterlo che correggere. Codiæca dell'informazione 24 Codice BCD con bit di paritça costruire un codice BCD a rivelazione di errore, si Per aggiungere ad ogni parola codice un bit ridondante puço èr = 1è detto di paritça. bit di paritça viene posto a 0 o a 1, in modo tale che somma degli uni nella parola codice sia pari: la 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 2 0 0 1 1 0 3 0 1 0 0 1 4 0 1 0 1 0 5 0 1 1 0 0 6 0 1 1 1 1 7 1 0 0 0 1 8 1 0 0 1 0 9
Codiæca dell'informazione 25 Conversione decimale! binario BCD con bit di paritça converte ogni cifra decimale separatamente nel corrispondente Si codice BCD e si aggiunge il quinto bit di paritça come da tabella precedente. il numero decimale è4765è10 in codice Convertire BCD con bit di paritça. binario 4 7 6 5 è è è è 01001 01111 01100 01010 Codiæca dell'informazione 26 Codici Ridondanti - Distanza di Hamming distanza di Hamming fra due parole codice, si La contando il numero di bit diversi in posizioni ottiene corrispondenti: 1 0 1 0 0 1 0 0 1 1 1 1 Distanza di Hamming=3 un codice a rivelazione di errore la distanza di Hamming In fra due parole codice deve essere ç 2, in quanto errore singolo deve produrre una sequenza di bit che un appartiene a nessuna parola codice. non un codice a correzione di errore singolo la distanza In Hamming fra due parole codice deve essere ç 3, in di un errore singolo deve produrre una sequenza di quanto che ha distanza di Hamming 1 dalla parola origina- bit e distanza di Hamming almeno 2 rispetto a ogni altrria parola codice, in modo da identiæcare univocamente la parola originaria.
Codiæca dell'informazione 27 Codici di Hamming codice di Hamming fornisce una procedura sistematica per generare codici ridondanti correttivi, tali che palese l'indicazione degli eventuali bit errati nella sia codice. parola considerato solo il caso di codice di Hamming Verrça autocorrettivo per bit singolo èin grado cioçe di correggere un eventuale errore su un solo bitè. m bit di parola Siano: bit di ridondanza r n = m + r bit di parola codice dell 2 m parole legali, ha n parole codice errate Ognuna distanza di Hamming 1, ottenute cambiando un bit a alla volta nella parola originaria. dell 2 m parole legali richiede èn +1è conægurazioni Ognuna di bit dedicate. Per cui deve essere: 2 n ç 2 m èn +1è 2 m æ2 r ç 2 m èm+r+1è 2 r ç èm+r+1è Codiæca dell'informazione 28 Codice di Hamming Autocorrettivo è4+3è Con m = 4 si devono avere r = 3 bit di ridondanza. dispongono gli m bit della parola e gli r bit di Si èo di controlloè nel seguente modo: ridondanza = 4 bit parola m " " " " 2 3 4 5 6 7 1 è è è r = 3 bit controllo dispongono i bit di controllo nelle posizioni corrispondenti Si a potenze di 2 è1, 2, 4, 8, :::è a partire dalla piçu signiæcativa. ogni bit di controllo viene assegnato un valore di Ad sulle sequenze di bit individuate come dalla paritça seguente tabella: 1 2 3 4 5 6 7 2 2 2 2 2 2 2 2 2 2 2 2
r1 r2 m1 r3 m2 m3 m4 Codiæca dell'informazione 29 Codice di Hamming Autocorrettivo è4+3è bit di controllo deve garantire la paritça sulle Ogni di bit della tabella: sequenze 1 2 3 4 5 6 7 2 2 2 2 2 2 2 2 2 2 2 2 bit 1! controlla la paritça sui bit 1, 3, 5 e 7. bit 2! controlla la paritça sui bit 2, 3, 6 e 7. bit 4! controlla la paritça sui bit 4, 5, 6 e 7. generico bit b çe controllato dai bit r i secondo la tavola della veritça: seguente r2 r1 b r3 1 X 2 X X 3 X 4 X X 5 X X 6 X X X 7 X Codiæca dell'informazione 30 Codice di Hamming Autocorrettivo è4+3è rilevazione e correzione di un eventuale bit errato La avviene controllando il valore di paritça dei bit di controllo. il valore di paritça del bit di controllo çe corretto si Se a zero il valore nella tabella precedente; se non çe pone corretto si pone a 1 il valore. si riscontra errata la paritça nei bit r1 e r3, il bit Se çe b = 5. Infatti: errato r2 r1 b r3 0 1 5 1 si riscontra errata la paritça nei bit r1 e r2, il bit Se çe b = 3. Infatti: errato r2 r1 b r3 1 1 3 0
r1 r2 m1 r3 m2 m3 m4 r1 r2 m1 r3 m2 m3 m4 r1 r2 m1 r3 m2 m3 m4 Codiæca dell'informazione 31 Codice di Hamming Autocorrettivo è4+3è Si determini il codice di Hamming per la su m = 4 bit: parola 1011 Si mettano i bit assegnati nelle posizioni corrette: Deve essere: 1 2 3 4 5 6 7 1 0 1 1, r1 = 0 perchçe sia pari la sequenza 1, 3, 5, 7., r2 = 1 perchçe sia pari la sequenza 2, 3, 6, 7., r3 = 0 perchçe sia pari la sequenza 4, 5, 6, 7. codice di Hamming completo per la parola data risulta: 1 2 3 4 5 6 7 0 1 1 0 0 1 1 Codiæca dell'informazione 32 Codice di Hamming Autocorrettivo è4+3è Si supponga di avere la seguente parola e di voler controllare se çe corretta: codice, 1 2 3 4 5 6 7 0 1 0 0 0 1 1 veriæca la correttezza di paritça dei bit di controllo, Si si individua univocamente l'eventuale bit errato: e, La sequenza 1, 3, 5, 7 çe dispari èr1 erratoè., La sequenza 2, 3, 6, 7 çe dispari èr2 erratoè., La sequenza 4, 5, 6, 7 çe pari èr3 correttoè. parola codice data contiene un bit errato che çe il bit La =3. Infatti: b r2 r1 b r3 1 1 3 0 La parola codice corretta risulta quindi essere: 1 2 3 4 5 6 7 0 1 1 0 0 1 1