Documente Academic
Documente Profesional
Documente Cultură
În codul BCD (denumirea improprie a codului NBCD) fiecare cifră zecimală a unui
număr este înlocuită cu tetrada corespunzătoare din codul 8421 (codul NBCD). Reamintim
că acest tip de reprezentare se mai numeşte şi zecimal codificat binar.
Prezentăm în continuare modalităţile în care se pot efectua calcule aritmetice cu
numere reprezentate în BCD de către o unitate aritmetică care lucrează în binar.
Mai sus transportul apărut din tetrada anterioară este evidenţiat prin „ ”.
Exerciţii:
a) 567 + 856; b) 4319 + 7214; c) 6915 + 7298; d) 795 + 356; e) 1876 + 9545
Bazele Informaticii Laborator nr.5
Exemplu: Să se efectueze în BCD suma 1234 + 7899 = 9133.
1 1 1
0001 0010 0011 0100 +
0111 1000 1001 1001
_________________________
1001 1011 1101 1101+
0110 0110 0110
_________________________
1001 1 0001 1 0011 1 0011
Exerciţii:
a) 1234 – 765; b) 352 – 187; c) 4175 – 2497; e) 5432 – 2789; f) 6739 – 4869
Bazele Informaticii Laborator nr.5
Exemplu :
I. paritate pară:
Această metodă este utilă pentru transferuri de dimensiuni mici, unde retransmiterea
informaţiei nu prezintă un inconvenient atât de mare. Principalul neajuns al acestei metode
este că nu poate detecta prezenţa a mai mult de un bit eronat în mesajul recepţionat. Dacă
doi biţi din mesaj sunt incorecţi, bitul de paritate nu mai semnalează eroarea.
Bazele Informaticii Laborator nr.5
Codurile polinomiale ciclice sunt cele mai utilizate coduri pentru detectarea erorilor
dintr-un mesaj transmis. Ele mai sunt cunoscute şi sub numele de coduri cu redundanţă
ciclică sau coduri CRC (Cyclic Redundancy Code). Codurile polinomiale sunt bazate pe
tratarea şirurilor de biţi ca reprezentări de polinoame cu coeficienţii 0 sau 1. O secvenţă de
cod de n 1 biţi, M an an 1 a0 , este văzută ca o listă de coeficienţi ai unui polinom de
grad n :
M ( x) an x n an 1 x n 1 a1 x a0 , ai 0,1, i 0, n .
Codurile polinomiale ciclice au proprietatea: dacă M an an 1 a0 este un cuvânt
cu sens, atunci orice permutare ciclică a simbolurilor sale este un cuvânt cu sens
M i ai ai 1 a0 an an 1 ai 1 .
În cazul utilizării acestor coduri, mesajului M , ce trebuie transmis, i se asociază
polinomul M (x) . Apoi, printr-un algoritm de codificare, polinomul M (x) se transformă
într-un polinom T (x) , astfel încât T (x) să fie multiplu al unui polinom G (x) , numit
polinom de generare.
Pentru realizarea codificării se poate utiliza algoritmul de înmulţire sau algoritmul
de împărţire a polinoamelor. Operaţiile aritmetice asupra coeficienţilor polinoamelor se
fac în modulo 2 şi deci nu există transport la adunare sau împrumut la scădere.
Folosind algoritmul de înmulţire: T ( x) M ( x)G ( x) nu se obţine o separare a
simbolurilor redundante de cele informaţionale, aceasta fiind principalul motiv pentru care
se preferă algoritmul de împărţire, deşi este mai complicat.
Considerăm că polinomul de generare este de grad r :
G ( x) br x r br 1 x r 1 b0 , bi 0,1, i 0, r .
Exemplu 1:
Să se determine mesajul transmis ştiind că mesajul de transmis este M 11001001
şi polinomul de generare este G ( x) x 4 x 2 1 .
Rezolvare:
M ( x) x 7 x 6 x 3 1;
M ( x) x 4 M ( x) , deoarece gradul lui G (x) este 4;
M ( x) x11 x10 x 7 x 4 ;
se împarte M (x ) la G (x) :
Rezultă că R( x) x 3 .
Polinomul transmis este T ( x) M ( x) R( x) :
T ( x) x11 x10 x 7 x 4 x 1 .
Coeficienţii acestui polinom reprezintă mesajul ce se va transmite:
T 11001001
1000 .
simboluri simboluri de
informatio nale control
Exerciţii:
Care va fi mesajul transferat daca mesajul util este:
a) 10101010; b) 11001101; c) 10010110; d) 10000011
Exemplul 2:
Ştiind că s-a recepţionat mesajul T 1010101011, să se verifice corectitudinea lui.
Rezolvare:
Mesajului recepţionat i se asociază polinomul T ( x) x 9 x 7 x 5 x 3 x 1 .
Aplicăm criteriul de detecţie a erorilor şi împărţind polinomul T (x) la G (x) obţinem
câtul C ( x) x 6 x 3 x 2 x 1 şi restul E ( x) x . Deoarece E ( x) 0 rezultă că mesajul
recepţionat este eronat.
Exerciţii:
Care a fost mesajul util, daca la receptie s-a primit mesajul T, ştiind că polinomul de
generare a fost CRC – 12. Verificati daca transmisia a fost afectată de erori.
a) T = 110011001010100111
b) T = 111100001111000011
Bazele Informaticii Laborator nr.5
Codul Hamming
Plasarea biţilor de paritate sunt locaţiile având ca indici puteri ale lui 2: {1, 2, 4, 8,
16, 32...}. Celelalte poziţii din mesaj sunt reprezentarea binară a informaţiei utile.
Pentru un mesaj util reprezentat pe 4 biţi sunt necesari încă 3 biţi de paritate:
1 2 3 4 5 6 7
P P P
1 2 3 4 5 6 7
1 0 1 0 1 0 1
Receptorul va calcula valorile biților de paritate și va identifica biții greșiți astfel:
Să presupunem ca a fost transmis mesajul de mai sus T=1010101 dar s-a recepționat
mesajul T’= 1010111
1 2 3 4 5 6 7
1 0 1 0 1 1 1
Apoi bitul greșit este dat de numărul în baza doi dat de p4 p2 p1 = 110(2)=6(10). Deci
bitul 6 este greșit și va fi corectat(din 1 în 0). Adică mesajul corectat va fi:
1 2 3 4 5 6 7
1 0 1 0 1 0 1
Bazele Informaticii Laborator nr.5
Dacă se foloseşte codificarea în paritate impară, calculele se vor face după
formulele:
Pentru transmițător: p1 a3 a5 a7 1 ; p2 a3 a6 a7 1 ; p4 a5 a6 a7 1
Pentru receptor: p1 ' p1 a3 a5 a7 1 ; p2 ' p2 a3 a6 a7 1 ; p4 ' p4 a5 a6 a7 1
Exerciţii:
Observaţie:
În cazul în care doi biţi din reprezentare sunt afectaţi de eroare, se poate detecta
prezenţa erorii, dar nu se poate specifica care a fost valoarea iniţială a celor doi biţi.