-
Curs 2 1.6.3. Operaii cu numere reprezentate n virgul fix In
exemplele care urmeaz vom considera numai cazul numerelor
repre-
zentate 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. 9 +
01001 5 00101
14 01110 Rezultatul este corect. 9 + 01001
11 01011
20 10100 Dup cum se constat se obine un numr negativ, deci
rezultatul este
incorect deoarece se depete capacitatea de reprezentare a
rezultatu-lui: 201624 .
9 + 10111 5 11011
14 10010 Rezultatul este corect. Apare un transport de la cifra
de semn, care se
neglijeaz. 9 + 10111 11 10101
20 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.
7 + 00111 4 11100
3 00011
7 + 11001 4 00100
3 11101 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 re-zultatul s nu fie utilizat.
Se observ c depirea poate apare indiferent dac exist sau nu
tran-sport de la cifra de semn. Pentru detectarea apariiei depirii,
se poate aplica ur-mtoarea 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 su-matoare elementare. Deoarece, n
general, unitatea de calcul nu dispune de sc-ztoare elementare, la
scdere se aplica urmtoarea regul: Pentru scderea unui numr (scztor)
dintr-un altul (desczut), se calculeaz n primul rnd com-plementul
scztorului (care se obine prin schimbarea semnului scztorului) du-p
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.
D 7 00111 S 4 00100 S 4 11100 D +7 + 00111 +
S 4 11100
3 00011 Rezultatul este corect. D 11+ 01011 S -9 10111 S 9+
01001 D 11+ + 01011 S 9+ 01001
20+ 10100 Rezultatul este incorect deoarece s-a depit
capacitatea de reprezen-
tare 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).
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 repre-zentarea n virgul fix. In acest caz, se
poate utiliza aritmetica pentru numere n-tregi, 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
necesi-t 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 tutu-ror numerelor n acest format, trebuie executate
o serie de operaii de scalare sau de deplasare, atand numerelor
factori de scal. Evidena acestora trebuie rea-lizat 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 ( yx, ) pentru a re-
prezenta fracia yx / .
O soluie mai avantajoas este utilizarea unei tehnici de scalare
automat, cunoscut sub numele de reprezentare n virgul mobil - VM
(numit i repre-zentare 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. EBMN (1.19)
Un numr reprezentat n format tiinific are dou componente. Prima
com-ponent 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 687523, poate fi reprezentat n format
ti-inific prin una din urmtoarele posibiliti:
-10 10875,236106875,23 = 210236875,0
In binar numrul corespunztor este 10111,1011 care, n format
tiini-fic poate reprezentat astfel:
4-3 ,,, 2011110111=2110111101=2101110111 0
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 operai-ilor 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 reprezenta-rea
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
microcalcula-toarelor, 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
cu-vnt 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 memora-rea semnului se utilizeaz un singur bit,
denumit bit de semn acesta avnd va-loarea 0 pentru numerele
pozitive i 1 pentru numerele negative.
In funcie de numrul de bii alocai pentru memorarea mantisei i a
exponen-tului 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
DEC += unde D , numit deplasament, este un numr constant, astfel
ales nct caracteris-tica 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
caracte-ristic se aloc 8 bii i n aceste condiii deplasamentul este
127D . Astfel da-c exponentul numrului este 0E , atunci
caracteristica sa este
1271270 C In binar caracteristica unui numr de exponent nul este
deci: 0111 1271111 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
1111C 2541110 astfel nct exponentul cel mai mare este
127127254 DCE Caracteristica cea mai mic este
0000C 10001 deci exponentul cel mai mic este dat de
1261271 DCE 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 poa-te fi scris sub forma
F,M 1=
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:
.....1111111,10,1 M
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 0
s Caracteristica 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 410 201111011,16875,23 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 de-
vine:
01111111127 000001004
10000011131 Tabelul 1.8
Simpl precizie
Dubl pre-cizie
Nr. bii mantis 23 52 Exponent maxim +127 +1023
Exponent minim -126 -1022
Deplasament 127 1023
Standardul IEEE 754 rezerv dou valori ale caracteristicii pentru
cazuri
speciale. Aceste valori sunt 1111255 1111
i 00000 0000
In tabelul 1.9 se prezint semnificaia acestor valori n funcie de
valoa-rea mantisei.
Tabelul 1.9 Caracteristica Mantisa Semnificaie 0=0000 0000 0 0
0=0000 0000 0 nr. denormalizat
255=1111 1111 0 255=1111 1111 0 NaN
1
-
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 nu-mr 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 va-loare 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 obi-nerii unui rezultat cu o valoare mai mic dect
numrul normalizat cel mai mic po-sibil, 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
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 = )22( 23
Numrul reprezentat este deci 3812723 104,32)22( N
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 0000 000 0000 0010 1101 0100 0000
-
0 0000 0001 000 0000 0000 0000 0000 0000
Exponentul este -126, iar mantisa este M=1,000...0000=1
deci
N=38126 1018,121
In concluzie virgula mobil, simpl precizie permite reprezentarea
nu-merelor normalizate n gama de valori
3838 104,31018,1 N
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=2321
Numrul corespunztor va fi deci: 3812623 1018,12)21( N
Cel mai mic numrul denormalizat va fi
0 0000 0000 000 0000 0000 0000 0000 0001
Acesta va avea deci mantisa
M=2321
iar numrul va fi
N=4514912623 104,121221
Punnd cap la cap toate aceste date rezult gama numerelor
repreze-tabile n VM (fig. 1.1)
0
-1 ,4x10-4 5
+ 1,4x10+ 45
-1 ,18x10-3 8
+ 1,18x10-3 8
-3 ,4x10+ 38
+ 3 ,4x10+ 38
De pas ire infe rioa ra
n eg ativ a
De pas ire infe rioa ra
p oz itiva
De pas ire s up erio ara
ne ga tiv a
De pas ire s up erio ara
p oz itiva
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 op-ta 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 3081023,2 i 3081079,1 .
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 rotunji-re: rotunjire spre 0 , rotunjire spre , rotunjire
spre i rotunjire la cel mai apropiat numr reprezentabil. Ultimul
mod de rotunjire este cel implicit i este pre-vzut pentru situaiile
n care numrul se afl n intervalului dintre dou reprezen-tri 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 con-tinu. 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 ine-xact 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 da-
c 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
ne-ponderate.
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 3210
,,, pppp . Codul format din
biii 3210
,,, bbbb va reprezenta o cifr zecimal a crei valoare este dat de
re-
laia
00112233bpbpbpbpN (1.24)
Codul care are ponderile prezentate mai sus se numete 0123 pppp
. In
tabelul 1.10 se prezint exemple de coduri ponderate de 4 bii mai
des utiliza-te.
Tabelul 1.10. Coduri binar-zecimale ponderate de 4 bii. Nr.
zeci-mal
8421
2421
3642
2184
0 0000 0000 0000 0000
1 0001 0001 0101 0111
2 0010 0010 0010 0110
3 0011 0011 1001 0101
4 0100 0100 0100 0100
5 0101 1011 1011 1011
-
6 0110 1100 0110 1010
7 0111 1101 1101 1001
8 1000 1110 1010 1000
9 1001 1111 1111 1111
Exemple
91102041810018421
71)1(0)2(041810012184
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 fie-cruia din cei 4 bii. De
exemplu, codul 8421 nu este autocomplementar, iar
codurile ,2421 3642 , 2184 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 co-respunztor, iar dac acesta reprezint un ir de
caractere alfanumerice vor avea alt reprezentare. Astfel numrul 13
este codificat sub forma
131101 dac reprezint numr i sub forma
130001 0011 dac reprezint o informaie alfanumeric. In acest caz
s-a utilizat pentru codifica-re 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
Exces 3 2 din 5 Gray
0 0011 00011 0000
1 0100 00101 0001
2 0101 00110 0011
3 0110 01001 0010
4 0111 01010 0110
5 1000 01100 0111
6 1001 10001 0101
7 1010 10010 0100
8 1011 10100 1100
9 1100 11000 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 codifi-carea
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 ci-fr 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 diver-
se 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 com-binaiilor 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. Da-c,
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 res-pective 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 pari-tate. Aceast metod const n adugare unui
bit suplimentar numit bit de pa-ritate 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 0 0000
1 1 0001
2 1 0010
3 0 0011
4 1 0100
5 0 0101
6 0 0110
7 1 0111
8 1 1000
9 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 co-duri 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 Ham-ming 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, cei-lali fiind biii semnalului
util.
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. Bi-
tul 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 bi-tul 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.
7 6 5 4 3 2 1
0 0 1 1 0 1 0
-
1.8.4. Coduri alfanumerice Datele alfanumerice conin caractere
care pot fi cifre, litere sau semne spe-
ciale. Codurile care reprezent asemenea caractere se numesc
coduri alfanumeri-ce.
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 carac-tere, 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
0b pn la 7b . De exemplu, litera A este reprezentat n ASCII prin
codul binar
100 0001 (coloana 100, linia 0001).
Tabelul 1.13. Codurile ASCII.
0123 bbbb 456 bbb
000 001 010 011 100 101 110 111
0000 NULL DLE 0 @ p p
0001 SOH DC1 ! 1 A Q a q
0010 STX DC2 " 2 B R b r
0011 ETX DC3 # 3 C S c s
0100 EOT DC4 $ 4 D T d t
0101 ENQ NAK % 5 E U e u
0110 ACK SYN & 6 F V f v
0111 BEL ETB 7 G W g w
1000 BS CAN ( 8 H X h x
1001 HT EM ) 9 I Y i y
1010 LF SUB * : J Z i z
1011 VT ESC + ; K [ k {
1100 FF FS < L \ 1 I
1101 CR GS - = M ] m }
1110 SO RS . > N ^ n -
1111 SI US / ? O _ o DEL
1.8.4.2. Unicode Unicode este un set de caractere specificat de
un consoriu de produc-
tori importani de calculatoare din SUA, definit cu scopul de a
elimina dificul-tile 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 inter-n a datelor n sistemele de calcul, ct i pentru
comunicaiile de date.