Sunteți pe pagina 1din 12

Curs 2

1.6.3. Operaii cu numere reprezentate n virgul fix


In exemplele care urmeaz vom considera numai cazul numerelor reprezentate n C2. Metodele de adunare i scdere a numerelor reprezentate n C2
demonstreaz avantajele acestei reprezentri. Aceste operaii se pot efectua ca
i n cazul numerelor fr semn.
1.6.3.1 Adunarea numerelor reprezentate n C2
Considerm cteva exemple de adunare a unor numere reprezentate pe
4+1 bii. In primele exemple, numerele sunt de acelai semn.
01001
9 +

5
14

00101
01110

Rezultatul este corect.


9 +
01001

11
20

01011
10100

Dup cum se constat se obine un numr negativ, deci rezultatul este


incorect deoarece se depete capacitatea de reprezentare a rezultatului: 24 16 20 .
10111
9 +

5
14

11011
10010

Rezultatul este corect. Apare un transport de la cifra de semn, care se


neglijeaz.
10111
9 +

11
20

10101
01100

Se obine un numr pozitiv, deci rezultatul este incorect deoarece, din


nou, s-a depit capacitatea de reprezentare pe 4 cifre binare (bii).
In exemplele urmtoare adunm numere de semne contrare.
00111
7 +

4
3

11100
00011

11001
7 +
00100
4
11101
3
In cazul numerelor de semne contrare, rezultatul este ntotdeauna corect,
deoarece nu poate apare depire de capacitate.
Din exemplele de mai sus rezult urmtoare regul general de adunare a
dou numere reprezentate n C2: Se adun numerele bit cu bit, inclusiv biii de
semn, care sunt tratai la fel cu biii de mrime i se ignor eventualul transport de
la bitul de semn.
Dac rezultatul este mai mare n valoare absolut dect valoarea maxim
care poate fi reprezentat n registru, apare o depire, deci rezultatul este in-

corect. La apariia depirii, UAL trebuie s semnaleze acest fapt, astfel nct rezultatul s nu fie utilizat.
Se observ c depirea poate apare indiferent dac exist sau nu transport de la cifra de semn. Pentru detectarea apariiei depirii, se poate aplica urmtoarea regul simpl: La adunarea a dou numere de acelai semn, a aprut o
depire dac i numai dac rezultatul are semn contrar semnului numerelor.
1.6.3.2. Scderea numerelor reprezentate n C2
Scderea a dou numere reprezentate n C2 se efectueaz fie prin metoda
scderii directe, dac dispozitivul de adunare dispune de scztoare elementare,
fie prin metoda adunrii numrului negativ corespunztor, reprezentat n C2, dac
dispozitivul pe care trebuie s se execute aceast operaie dispune numai de sumatoare elementare. Deoarece, n general, unitatea de calcul nu dispune de scztoare elementare, la scdere se aplica urmtoarea regul: Pentru scderea
unui numr (scztor) dintr-un altul (desczut), se calculeaz n primul rnd complementul scztorului (care se obine prin schimbarea semnului scztorului) dup care se adun deczutul cu complementul scztorului.
S considerm urmtoarele exemple, n care s-a notat cu D desczutul, cu
S scztorul, iar cu S' complementul scztorului S.
00111
D
7
00100
4
S

11100
4
S

00111 +
11100
4
00011
3
Rezultatul este corect.
01011
+ 11
D
10111
-9
S
01001
+9
S
D
S

+7 +

01011
+ 11 +
01001
+9
10100
+ 20
Rezultatul este incorect deoarece s-a depit capacitatea de reprezentare pe 4 cifre binare (bii).
Regula pentru detectarea depirii poate fi enunat astfel: La scderea a
dou numere de semne contrare apare depire dac i numai dac rezultatul
are acelai semn cu scztorul (S).

D
S

1.7. Reprezentarea numerelor n virgul mobil


In multe aplicaii se utilizeaz numere care nu sunt ntregi. Exist mai
multe posibiliti pentru reprezentarea acestor numere. O posibilitate este reprezentarea n virgul fix. In acest caz, se poate utiliza aritmetica pentru numere ntregi, iar apoi se plaseaz virgula binar n poziia predefinit, de exemplu, dup
bitul de semn. Adunarea a dou numere reprezentate ntr-un asemenea format
poate fi realizat cu un sumator pentru numere ntregi n timp ce nmulirea necesit operaii suplimentare de deplasare. In cazul reprezentrii numerelor n virgul
fix, dei virgula nu mai este reprezentat fizic n calculator, poziia virgulei bina-

re, stabilit prin proiectare, nu mai poate fi schimbat. Pentru transformarea tuturor numerelor n acest format, trebuie executate o serie de operaii de scalare sau
de deplasare, atand numerelor factori de scal. Evidena acestora trebuie realizat prin program, ceea ce mrete timpul de calcul. Alte reprezentri care au
fost propuse constau n pstrarea logaritmilor numerelor i executarea nmulirii
prin adunarea logaritmilor, sau utilizarea unei perechi de ntregi ( x, y ) pentru a reprezenta fracia x / y .
O soluie mai avantajoas este utilizarea unei tehnici de scalare automat,
cunoscut sub numele de reprezentare n virgul mobil - VM (numit i reprezentare n virgul flotant - floating point). In acest caz, factorul de scal devine o
parte a cuvntului din calculator, poziia virgulei variind pentru fiecare numr n
mod automat.
1.7.1. Principii
In general, un numr N se poate reprezenta n format tiinific sub forma
urmtoare.
N M BE
(1.19)
Un numr reprezentat n format tiinific are dou componente. Prima component este mantisa (M), care indic valoarea exact a numrului ntr-un anumit
domeniu, fiind reprezentat de obicei ca un numr fracionar cu semn. A doua
component este exponentul ( E ), care indic ordinul de mrime al numrului. In
expresia de sus B este baza n care este reprezentat numrul.
De exemplu numrul zecimal 23,6875 poate fi reprezentat n format tiinific prin una din urmtoarele posibiliti:
23,6875 100 236,875 10 -1 = 0,236875 10 2
In binar numrul corespunztor este 10111,1011 care, n format tiinific poate reprezentat astfel:
10111,1011 20 = 10111101,1 2-3 = 1,01111011 24
Acest mod de scriere a numerelor este preluat i de reprezentarea VM.
De-a lungul timpului au existat, la diferite familii de calculatoare, diferene
considerabile n modul de reprezentare a numerelor n VM i de execuie a operaiilor corespunztoare. Aceste diferene se refereau la numrul de bii alocai pentru
exponent i pentru mantis, la gama exponenilor, la modurile de rotunjire i la
operaiile executate la apariia unor condiii de excepie, ca depirea superioar
sau cea inferioar. Pentru a facilita portabilitatea programelor de la un calculator la
altul i pentru a ncuraja dezvoltarea programelor complexe orientate pe calcule
numerice, Societatea de Calculatoare a organizaiei IEEE (Institute of Electrical
and Electronics Engineers) a elaborat standardul IEEE 754, pentru reprezentarea numerelor n VM i pentru operaii aritmetice n aceast reprezentare. Acest
standard a fost publicat n 1985.
Standardul era destinat n primul rnd microprocesoarelor i microcalculatoarelor, unde unii productori puneau la dispoziie doar posibiliti limitate pentru
calcule numerice. Ca rezultat al acestui standard, au fost dezvoltate circuite sau
procesoare care implementeaz standardul. Astfel, cele mai multe uniti de calcul
n VM i coprocesoare matematice se conformeaz acestui standard.
Reprezentarea numerelor n virgul mobil poate fi memorat ntr-un cuvnt de memorie (patru octei), care este divizat n trei cmpuri, cte unul pentru
fiecare dintre urmtoarele elemente: semn, mantis i exponent. Baza este con-

siderat ca fiind, n mod implicit, egal cu 2 i deci nu mai trebuie memorat. In


cmpul de semn se memoreaz semnul numrului (mantisei). Pentru memorarea semnului se utilizeaz un singur bit, denumit bit de semn acesta avnd valoarea 0 pentru numerele pozitive i 1 pentru numerele negative.
In funcie de numrul de bii alocai pentru memorarea mantisei i a exponentului standardul IEEE 754 definete urmtoarele formate sau precizii: precizie
simpl, precizie dubl. Parametrii principali ai acestor formate sunt prezentai n
tabelul 1.7.
In conformitate cu standardul IEEE 754, n cmpul rezervat exponentului
nu se memoreaz de fapt exponentul E al numrului ci un numr C , denumit
caracteristic, care se calculeaz cu relaia
C = E +D
unde D , numit deplasament, este un numr constant, astfel ales nct caracteristica C s rezulte ntotdeauna pozitiv. In aceste condiii, nu este necesar s se
rezerve un cmp separat pentru semnul exponentului.
Conform standardului IEEE 754 n formatul simpl precizie pentru caracteristic se aloc 8 bii i n aceste condiii deplasamentul este D 127 . Astfel dac exponentul numrului este E 0 , atunci caracteristica sa este
C 0 127 127
In binar caracteristica unui numr de exponent nul este deci:
0111 1111 127
Numerele cu exponent pozitiv vor avea caracteristica mai mare dect
127, iar cele cu exponent negativ vor avea caracteristica mai mic de 127.
Conform standardului caracteristica cea mai mare este
C 1111 1110 254
astfel nct exponentul cel mai mare este
E C D 254 127 127
Caracteristica cea mai mic este
C 0000 0001 1
deci exponentul cel mai mic este dat de
E C D 1 127 126
Mantisa se reprezint ntotdeauna sub form normalizat, n care virgula
zecimal este adus dup prima cifr semnificativ a numrului. In sistemul de
numeraie binar prima cifr a oricrui numr este ntotdeauna 1, deci mantisa poate fi scris sub forma
M = 1,F
unde F reprezint partea fracionar a numrului. In aceste condiii dac toi biii
fraciei sunt 0, mantisa este 1,0; dac toi biii fraciei sunt 1, mantisa este cu
puin mai mic dect 2,0. (1,111111.) Deci:
1,0 M 1,1111111.....
In formatul simpl precizie pentru mantis se aloc 23 bii. Reamintindu-ne
c un cuvnt de memorie este format din 4 octei (32 bii), un numr n virgul
mobil - simpl precizie - este memorat n modul urmtor:
31 30
23 22
s
Caracteristica

0
Parte fracionar

Deoarece primul bit al mantisei este ntotdeauna 1 acesta nu se mai


memoreaz, motiv pentru care acesta se numete bit ascuns. Astfel, n cei 23

de bii disponibili pentru mantis se memoreaz numai partea fracionar F .


In simpl precizie numrul zecimal 23,6875 10 1,01111011 2 4 va avea
deci urmtoarea reprezentare:
0 10000011 011 1101 1000 0000 0000 0000
Caracteristica a fost calculat cu relaia C=E+D care n cazul nostru devine:
127 01111111
4 00000100
131 10000011

Tabelul 1.8
Nr. bii mantis
Exponent maxim
Exponent minim
Deplasament

Simpl
precizie
23
+127
-126
127

Dubl precizie
52
+1023
-1022
1023

Standardul IEEE 754 rezerv dou valori ale caracteristicii pentru cazuri
speciale. Aceste valori sunt
255 1111 1111
i
0 0000 0000
In tabelul 1.9 se prezint semnificaia acestor valori n funcie de valoarea mantisei.
Tabelul 1.9
Caracteristica
0=0000 0000
0=0000 0000
255=1111 1111
255=1111 1111
1<=C<=254

Mantisa
0
0
0
0
0

Semnificaie
0
nr. denormalizat

NaN
nr. normalizat

Dac att caracteristica ct i mantisa sunt 0 atunci coninutul locaiei


de memorie reprezint cifra 0. In funcie de valoarea bitului de semn exist
dou valori ale acestei cifre: +0 i -0.
Pentru cazul n care apare o depire superioar, exist o reprezentare special pentru infinit, constnd din caracteristica cu valoarea maxim pentru formatul
respectiv (255) i mantisa egal cu 0. In funcie de bitul de semn, sunt posibile dou reprezentri pentru infinit, i . Valoarea infinit se poate utiliza ca operand, utiliznd reguli ca:

n
n/ 0
n/0

Utilizatorul poate decide dac va trata depirea superioar ca o condiie de


eroare, sau va continua calculele cu valoarea infinit.
Pentru indicarea diferitelor condiii de excepie, ca n cazul operaiilor nedefi-

nite de forma / , , 0 , 0 / , 0 / 0 , sau extragerea rdcinii ptrate


dintr-un numr negativ, s-a prevzut un format special, care nu reprezint un numr obinuit, fiind numit NaN (Not a Number). In acest caz exponentul are valoarea
maxim posibil iar mantisa este diferit de 0 . Astfel, exist o clas ntreag de
valori NaN.
Standardul IEEE 754 specific faptul c atunci cnd operandul unei operaii
este NaN, rezultatul trebuie s fie NaN. Datorit regulilor de execuie a operaiilor
aritmetice cu valori NaN, la scrierea subrutinelor de calcul n VM care accept o valoare NaN ca argument, nu sunt necesare verificri speciale.
Reprezentarea numerelor denormalizate
Dup cum s-a artat anterior, un numr normalizat are mantisa reprezentat
sub forma
M=1,F
iar exponentul acestuia poate avea valori cuprinse ntre -126 i +127. In cazul obinerii unui rezultat cu o valoare mai mic dect numrul normalizat cel mai mic posibil, standardul permite utilizarea numerelor care nu sunt normalizate, acestea
fiind numite numere denormalizate.
Un numr denormalizat are exponentul mai mic de -126. innd seama c
faptul c caracteristica minim este C=0, rezult c exponentul minim este
E = C D = 0 127 = -127
Dac exponentului numrului este mai mic dect aceast valoare mantisa
nu mai poate fi normalizat i deci va fi reprezentat sub forma
M = 0,F
In aceast situaie exponentul minim al unui numr denormalizat devine
1,0 x 2-127 = 0,1 x 2-126
Considerm urmtorul exemplu:
0.10110101 x 2-135 = 0.10110101 x 2-126 x 2-9 =
= 0.000 000 000 101 101 01 x 2-126
Reprezentarea n virgul mobil a acestui numr este
0 0000 0000 000 0000 0010 1101 0100 0000
1.7.2 Gama numerelor reprezentate n VM
Numrul cel mai mare, n valoare absolut, care poate fi reprezentat
simpl precizie, trebuie s aib exponentul cel mai mare i mantisa cea mai
mare, deci este urmtorul:
0 1111 1110 111 1111 1111 1111 1111 1111
Caracteristica fiind 254 exponentul acestui numr este +127, iar, innd
seama de bitul ascuns, mantisa este
M=1,111 1111 1111 1111 1111 1111=
= 2 - 0,000 0000 0000 0000 0000 0001 = ( 2 2 23 )
Numrul reprezentat este deci

N (2 2 23 ) 2127 3,4 10 38
Numrul cel mai mic, n valoare absolut care poate fi reprezentat n
simpl precizie, trebuie s aib exponentul i mantisa cele mai mici, deci:

0 0000 0001 000 0000 0000 0000 0000 0000


Exponentul este -126, iar mantisa este
M=1,000...0000=1
deci
N=1 2 126 1,18 10 38
In concluzie virgula mobil, simpl precizie permite reprezentarea numerelor normalizate n gama de valori

1,18 10 38 N 3,4 10 38
Cel mai mare numr denormalizat va fi
0 0000 0000 111 1111 1111 1111 1111 1111
i va avea deci mantisa
M=0,111 1111 1111 1111 1111 1111=1 2 23
Numrul corespunztor va fi deci:

N (1 2 23 ) 2 126 1,18 10 38
Cel mai mic numrul denormalizat va fi
0 0000 0000 000 0000 0000 0000 0000 0001
Acesta va avea deci mantisa
M=1 2 23
iar numrul va fi
N=1 2 23 2126 1 2149 1,4 10 45
Punnd cap la cap toate aceste date rezult gama numerelor reprezetabile n VM (fig. 1.1)
D e pas ire s up erio ara
ne ga tiv a

-1 ,1 8 x 1 0

D e pas ire s up erio ara


p oz itiva

D e pas ire infe rioa ra


p oz itiva

D e pas ire infe rioa ra


n eg ativ a
-3 8

+ 1 ,1 8 x 1 0

-3 8

-3 ,4 x 1 0

+ 38

-1 ,4 x 1 0

-4 5

+ 1 ,4 x 1 0

+ 45

+ 3 ,4 x 1 0

+ 38

Fig. 1.1
In simpl precizie, se obine o precizie de reprezentate a numerelor de
6-7 cifre semnificative. Dac aceast precizie nu este suficient, se poate opta pentru dubl precizie, cnd precizia de reprezentare a numerelor crete la
15-16 cifre semnificative.
In dubl precizie gama numerelor care pot fi reprezentate este cuprins
ntre 2,23 10 308 i 1,79 10 308 .
O alt caracteristic a standardului IEEE 754 cu implicaii asupra circuitelor
din unitatea aritmetico-logic (UAL) este regula de rotunjire. In urma operaiilor
efectuate ntre dou numere n VM, de obicei rezultatul nu poate fi reprezentat

n mod exact ca un alt numr n VM. Standardul specific patru moduri de rotunjire: rotunjire spre 0 , rotunjire spre , rotunjire spre i rotunjire la cel mai
apropiat numr reprezentabil. Ultimul mod de rotunjire este cel implicit i este prevzut pentru situaiile n care numrul se afl n intervalului dintre dou reprezentri n VM.
Standardul IEEE 754 definete cinci tipuri de excepii: depire inferioar,
depire superioar, mprire la zero, rezultat inexact i operaie invalid. In mod
implicit, la apariia unei asemenea excepii, este setat un indicator i calculele continu. Standardul recomand ca implementrile s prevad un bit de validare
pentru fiecare excepie. Dac apare o excepie cu bitul de validare setat, este
apelat o rutin de tratare a excepiei.
Excepiile de depire inferioar, depire superioar i mprire la zero
sunt prevzute la majoritatea sistemelor de calcul n VM. Excepia de rezultat inexact apare atunci cnd rezultatul unei operaii trebuie rotunjit. Aceasta nu este o
condiie excepional, deoarece apare n mod frecvent i deci, validarea rutinei de
tratare a acestei excepii poate avea un impact semnificativ asupra performanei.
1.8. Coduri
1.8.1. Coduri binar-zecimale
La introducerea datelor n memoria calculatorului nu se ine seama dac un anumit ir de caractere numerice reprezint un numr sau un alt gen
de informaie (de exemplu un numr de telefon). Pentru acest motiv cifrele
sistemului zecimal sunt iniial codificate ntr-un anumit cod. Ulterior, dac acel
ir de caractere reprezint un numr, are loc codificarea acestuia n C2 sau
n virgul mobil. Pentru codificarea fiecreia din cele 10 cifre, se utilizeaz 4 bii.
Astfel din cele 16 variante posibile, se utilizeaz numai 10 combinaii 6 dintre
acestea rmnnd neutilizate. Din numeroasele coduri posibile se utilizeaz
practic doar o mic parte.
Codurile utilizate se mpart n dou categorii: coduri ponderate i neponderate.
In cazul codurilor ponderate, cifrele zecimale sunt exprimate printr-o
combinaie de 4 cifre binare. Fiecrea dintre aceste cifre i se asociaz o
anumit pondere, care poate fi pozitiv au negativ.
Considerm un cod ale crui ponderi sunt p0 , p1 , p2 , p3 . Codul format din
biii b0 , b1 , b2 , b3 va reprezenta o cifr zecimal a crei valoare este dat de relaia
N p3b3 p2 b2 p1b1 p0 b0
(1.24)
Codul care are ponderile prezentate mai sus se numete p3 p2 p1 p0 . In
tabelul 1.10 se prezint exemple de coduri ponderate de 4 bii mai des utilizate.
Tabelul 1.10. Coduri binar-zecimale ponderate de 4 bii.
Nr. zecimal
0
1
2
3
4
5

8421

2421

6423

84 21

0000
0001
0010
0011
0100
0101

0000
0001
0010
0011
0100
1011

0000
0101
0010
1001
0100
1011

0000
0111
0110
0101
0100
1011

6
7
8
9

0110
0111
1000
1001

1100
1101
1110
1111

0110
1101
1010
1111

1010
1001
1000
1111

Exemple
10018421 8 1 4 0 2 0 1 1 9
10018421 8 1 4 0 (2) 0 (1) 1 7
Deoarece codul unei cifre zecimale este identic cu valoarea n binar a
acelei cifre, codul 8421 se mai numete cod binar-zecimal natural (NBCD Natural Binary Coded Decimal).
In codul 2421, numit i cod Aiken , primele 5 cifre zecimale (0 - 4) au
aceeai exprimare ca i n codul 8421. Cifrele zecimale (5 9) se obin prin
complementarea primelor cinci cifre.
Codurile care au aceast proprietate se numesc coduri autocomplementare.
Un cod este autocomplementar dac cuvntul de cod al complementului fa de 9
al cifrei N (deci 9 - N) se poate obine din codul cifrei N, prin complementarea fiecruia din cei 4 bii. De exemplu, codul 8421 nu este autocomplementar, iar
codurile 2421, 642 3 , 84 21 sunt autocomplementare.
Trebuie s remarcm faptul c dac un ir de caractere numerice reprezint
un numr acesta este reprezentat n memoria calculatorului prin numrul binar corespunztor, iar dac acesta reprezint un ir de caractere alfanumerice vor avea
alt reprezentare. Astfel numrul 13 este codificat sub forma
13 1101
dac reprezint numr i sub forma
13 0001 0011
dac reprezint o informaie alfanumeric. In acest caz s-a utilizat pentru codificare codul 8421.
Codurile neponderate pot avea un numr mai mare de 4 bii. Codurile cele
mai des utilizate sunt prezentate n tabelul 1.11
Tabelul 1.11. Coduri binar-zecimale neponderate.
Nr. zecimal
0
1
2
3
4
5
6
7
8
9

Exces 3

2 din 5

Gray

0011
0100
0101
0110
0111
1000
1001
1010
1011
1100

00011
00101
00110
01001
01010
01100
10001
10010
10100
11000

0000
0001
0011
0010
0110
0111
0101
0100
1100
1101

Codul Exces 3 este autocomplementar i deriv din codul 8421 (BCD) prin
adugarea la fiecare cifr a valorii 3. Acest cod, poate face distincie ntre lipsa
unei informaii nscrise ntr-un registru sau locaie de memorie i nscrierea valorii
zero. Astfel codul 0000 reprezint lipsa unei informaii, iar 0011 reprezint codificarea cifrei zero.

Codul 2 din 5 se utilizeaz pentru reprezentarea numerelor zecimale


printr-un grup de 5 bii. Denumirea acestui cod deriv din faptul c fiecare cifr zecimal codificat n binar conine doi bii de 1 din cei 5 bii.
Codul Gray are proprietatea de adiacen, adic trecerea de la o cifr
zecimal la urmtoarea se realizeaz prin modificarea unui singur bit.

1.8.2. Coduri detectoare de erori


In procesul de transmitere a informaiilor acestea pot fi alterate de diverse zgomote. Preluarea unor informaii alterate trebuie evitat i pentru acest
motiv receptorul realizeaz o verificare a informaiilor primite. Verificarea
transmiterii corecte a informaiilor se poate realiza cu ajutorul unor coduri
speciale numite coduri detectoare de erori.
Una din metodele de detectare a unei erori o constituie detectarea combinaiilor interzise. In cazul codurilor binar-zecimale, deoarece se utilizeaz
10 din cele 16 combinaii posibile de 4 bii, celelalte combinaii nu trebuie s
apar. Aceste combinaii interzise se pot utiliza pentru detectarea erorii. Dac, de exemplu, n codul 1000 (BCD) apare o singur eroare, codul poate fi
transformat n 0000 , 1100 , 1010 , sau 1001 . Dintre aceste combinaii, a doua
i a treia constituie combinaii interzise, astfel nct n aceste cazuri eroarea
poate fi detectat. Celelalte combinaii nu sunt interzise, deci n cazurile respective eroarea nu poate fi detectat.
O modalitate de cretere a probabilitii de detectare a erorilor const n
folosirea mai multor combinaii interzise, care pot fi disponibile dac codurile
au mai mult de 4 bii. De exemplu, n codul 2 din 5 apare o eroare ori de cte
ori o cifr codificat are mai mult sau mai puin de doi bii de 1. Astfel, se pot
detecta erori multiple.
Au existat mai multe metode care i propuneau verificarea informaiilor
dar metoda care s-a impus datorit simplitii ei este cea a controlului de paritate. Aceast metod const n adugare unui bit suplimentar numit bit de paritate la biii semnalului util. Bitul de paritate va avea o astfel de valoare nct
numrul tuturor biilor de valoare 1 s fie par. De exemplu dac codul 8421 al
unui numr zecimal este 0101 atunci bitul de paritate va avea valoarea 0 iar
semnalul transmis va fi 00101. In tabelul 1.12 codurile celor 10 cifre zecimale.
Tabelul 1.12. Codul 8421 cu paritate par.
Nr. zecimal

Cod

0
1
2
3
4
5
6
7
8
9

0 0000
1 0001
1 0010
0 0011
1 0100
0 0101
0 0110
1 0111
1 1000
0 1001

Dac n timpul transmisiei un bit a fost alterat, bitul de paritate nu mai


corespunde fapt care determin receptorul s cear retransmiterea informai-

ei.
1.8.3. Coduri corectoare de erori
Exist coduri mai complexe, numite coduri corectoare de erori, care permit
att detectarea ct i corectarea biilor eronai n timpul transmisiei. Aceste coduri sunt utilizate n cazul n care retransmisia informaiei nu este posibil, sau
necesit un timp prea mare.
Richard Hamming a propus o metod practic de corectare a erorilor care
va fi prezentat n continuare lund n considerare un caz simplu. Metoda Hamming prevede ca pentru 4 bii de semnal util s se adauge nc 3 bii de paritate.
Amplasarea acestor bii este prezentat n Fig. 1.2. Biii de paritate sunt 1,2,4, ceilali fiind biii semnalului util.
1

Fig.1.2
Fiecare bit de paritate verific anumii bii de semnal dup cum rezult mai
jos:
- Bitul 1 de paritate verific biii 3, 5, 7.
- Bitul 2 de paritate verific biii 3, 6, 7.
- Bitul 4 de paritate verific biii 5, 6, 7.
Dup cu rezult, bitul 5 este verificat de biii 1 i 4 adic (1+4 = 5), bitul 6 este
verificat de biii 2 i 4 - (2+4 = 6) i bitul 7 este verificat de biii 1, 2 i 4 (1+2+4=7).
Dac transmiterea cifrei zecimale se realizeaz corect, toi biii de paritate
verific n mod corect paritatea.
S presupunem de exemplu, c a aprut o eroare la transmiterea bitului
de informaie din poziia 6. Codul recepionat va fi 0100111 n loc de 0100101 .
Se verific biii de paritate, cu urmtoarele rezultate:
- Bitul 1 verific paritatea (poziiile 1, 3, 5, 7 conin doi bii de 1)
- Bitul 2 nu verific paritatea (poziiile 2, 3, 6, 7 conin trei bii de 1)
- Bitul 4 nu verific paritatea (poziiile 4, 5, 6, 7 conin trei bii de 1)
Bitul incorect trebuie s fie unul din biii testai de biii de paritate 2 i 4. Bitul transmis eronat este unul din cei care se afl n ambele liste prezentate mai
sus, deci poate fi bitul 6 sau 7. Deoarece bitul 1 verific paritatea, rezult c i bitul 7 este corect. Bitul eronat este deci bitul 6 i valoarea acestui bit trebuie
complementat. In acest fel, eroarea poate fi corectat.
In mod practic, pentru determinarea bitului eronat se calculeaz suma
biilor de paritate care nu se verific. Aceast sum reprezint poziia bitului
eronat. In exemplu considerat, biii de paritate 2 i 4 nu verific paritatea, deci bitul
eronat este bitul 6. Dup cum se observ acest cod poate corecta un singur bit
eronat.

1.8.4. Coduri alfanumerice


Datele alfanumerice conin caractere care pot fi cifre, litere sau semne speciale. Codurile care reprezent asemenea caractere se numesc coduri alfanumerice.
1.8.4.1. Codul ASCII
Un cod alfanumeric foarte des utilizat este codul ASCII (American Standard
Code for Information Interchange), care codific literele mari i mici ale alfabetului
englez, cifrele zecimale, semnele de punctuaie i alte caractere speciale. Codul
ASCII utilizeaz 7 bii pentru a codifica 128 de caractere. Din cele 128 de caractere, 94 sunt caractere care pot fi tiprite, iar 34 sunt caractere utilizate pentru
diferite funcii de control.
In tabelul 1.13 se prezint codurile ASCII. Cei 7 bii ai codului sunt notai cu
b0 pn la b7 . De exemplu, litera A este reprezentat n ASCII prin codul binar
100 0001 (coloana 100, linia 0001).
Tabelul 1.13. Codurile ASCII.

b3b2 b1b0
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

b6b5b4
000
NULL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI

001
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US

010
!
"
#
$
%
&

(
)
*
+

.
/

011
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?

100
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O

101
p
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_

110

a
b
c
d
e
f
g
h
i
i
k
1
m
n
o

111
p
q
r
s
t
u
v
w
x
y
z
{
I
}
DEL

1.8.4.2. Unicode
Unicode este un set de caractere specificat de un consoriu de productori importani de calculatoare din SUA, definit cu scopul de a elimina dificultile datorate utilizrii seturilor de caractere codificate diferit n programele
elaborate pentru mai multe limbi. Unicode este compatibil cu standardul
10646, denumit n mod curent UCS (Universal Character Set). UCS a fost
primul set de caractere standardizat elaborat cu scopul de a include n final
toate caracterele utilizate n toate limbile scrise din lume, ca i alte simboluri,
cum sunt cele matematice. UCS este utilizat att pentru reprezentarea intern a datelor n sistemele de calcul, ct i pentru comunicaiile de date.

S-ar putea să vă placă și