Documente Academic
Documente Profesional
Documente Cultură
6
1Giga = 2
30
10 ; 1Tera = 2
40
10 ;
9
12
1.1 Sisteme de numeraie
Un sistem de numeraie este o mulime finit de simboluri - numite cifre
mpreun cu un set de reguli pentru reprezentarea numerelor; numrul
simbolurilor reprezint baza sistemului de numeraie.
De exemplu, Sistemul Roman are apte simboluri: I, V, X, L, C, D, M.
Fiecare cifr are o valoare numeric (pondere) 1, 5, 10, 50, 100, 500, 1000.
- numrul reprezentat se obine prin nsumarea ponderilor, dac sunt
descresctoare: MDLXX = 1000+500+50+10+10=1570;
- dac un simbol este urmat de altul, cu pondere mai mare, valoarea
numeric se obine prin diferen: MCM = 1000+(1000-100)=1900;
- un simbol se poate repeta consecutiv de cel mult 3 ori (cu excepia
simbolului M); astfel 40 se scrie corect XL i nu XXXX;
MDXXX=1530; MCMXCIX=1999; MMII = 2002;
Sistemul Roman este utilizat n prezent doar pentru numerale ordinale.
3
Sistemele uzuale sunt poziionale, adic ponderea unei cifre depinde de
locul pe care aceasta n ocup n irul de cifre al reprezentrii.
Fie un sistem de numeraie poziional i mulimea de simboluri
; S = {c
1
, c
2
, . . , c
B
}
un numr N (ntreg) se scrie n acest sistem astfel:
, N = c
i
1
c
i
2
. . . c
in
=
m=1
n
c
im
B
nm
= c
i
1
B
n1
+ c
i
2
B
n2
+ . . + c
i n
B
0
unde B este baza sistemului de numeraie (numrul de simboluri) iar indicii
sunt n domeniul 1, 2, 3, . . . , B.
Exemple:
1. n sistemul zecimal (baza B = 10), mulimea simbolurilor este
S = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
numrul 1987 se scrie:
1987 = 1 10
3
+ 9 10
2
+ 8 10
1
+ 7 10
0
2. n sistemul binar (baza B = 2), mulimea simbolurilor este S = {0, 1};
numrul 21 se scrie = 10101 = 1 2
4
+ 0 2
3
+ 1 2
2
+ 0 2
1
+ 1 2
0
16 + 0 + 4 + 0 + 1 = 21.
3. n sistemul hexazecimal (baza B = 16), mulimea simbolurilor este
S = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F};
numrul 1000 se scrie 3E8 = = 3 16
2
+ E 16
1
+ 8 16
0
768 + 224 + 8 = 1000.
1.1.1. Conversia unui numr dintr-o baz n alta
Este necesar adeseori ca un numr dat ntr-o baz de numeraie s fie
exprimat n alt baz de numeraie.
1. Conversia din baza 10 ntr-o baz B se poate face prin exprimarea
numrului sub form de polinom n "variabila" B:
. N = a
0
B
n
+ a
1
B
n1
+ . . . + a
n1
B + a
n
n aceast exprimare a numrului N, coeficienii sunt a
0
, a
1
, . . . , a
n
chiar cifrele reprezentrii lui N n baza B, n aceast ordine.
Rezult urmtorul algoritm de conversie:
1. Se calculeaz , restul mpririi lui N prin B: ; a
n
N = Q B + a
n
; N = (a
0
B
n1
+ a
1
B
n2
+ . . . + a
n1) B + a
n
2.Se calculeaz , restul mpririi lui Q prin B: : a
n1
Q = Q
1
B + a
n1
3. Se repet pasul 2 cu fiecare ct, pn cnd se obine ctul = 0.
Tabelul 1
Zecimal (Z) Binar (B) ZCB (DCB) Octal (Q) Hexazecimal (H)
4
0 0 0 0 0 0 0 0
1 1 0 0 0 1 1 1
2 1 0 0 0 1 0 2 2
3 1 1 0 0 1 1 3 3
4 1 0 0 0 1 0 0 4 4
5 1 0 1 0 1 0 1 5 5
6 1 1 0 0 1 1 0 6 6
7 1 1 1 0 1 1 1 7 7
8 1 0 0 0 1 0 0 0 10 8
9 1 0 0 1 1 0 0 1 11 9
10 1 0 1 0 12 A
11 1 0 1 1 13 B
12 1 1 0 0 14 C
13 1 1 0 1 15 D
14 1 1 1 0 16 E
15 1 1 1 1 17 F
16 1 0 0 0 0 20 10
4. Resturile obinute, scrise de la stnga la dreapta ncepnd cu ultimul
rest este reprezentarea numrului N n baza B.
Exemplu: N = 37; B = 2;
se scrie succesiv: 37 = 18 x 2 + 1 ;
18 = 9 x 2 + 0 ;
9 = 4 x 2 + 1;
4 = 2 x 2 + 0 ;
2 = 1 x 2 + 0 ;
1 = 0 x 2 + 1 ;
punnd alturi resturile n ordinea invers obinerii lor, se obine: 100101;
37
10
= 1 2
5
+ 0 2
4
+ 0 2
3
+ 1 2
2
+ 0 2
1
+ 1 2
0
= 100101
2
5
n mod analog se face conversia din baza 10 n orice baz; de exemplu
pentru conversia numrului 37 n hexazecimal, se scrie succesiv:
37 = 2 x 16 + 5; 2 = 0 x 16 + 2; se obine:
. 37
10
= 2 16
1
+ 5 16
0
= 25
16
n tabelul 1.1 sunt prezentate comparativ primele 16 numere naturale n
cele mai utilizate sisteme de numeraie: zecimal, binar, octal i hexazecimal.
Se poate observa n mod direct codificarea binar a celor 16 cifre
hexazecimale i de asemenea relaia dintre sistemul octal i binar.
2. Pentru conversia din hexazecimal n binar, fiecare cifr (hexa) se
nlocuiete prin codul su binar (4 cifre binare) conform tabelului 1.
Exemplu: 1 A B F 2 (H) = 0001 1010 1011 1111 0010 unde primele
trei zerouri pot fi omise.
3. Pentru conversia din binar n hexazecimal, se separ reprezentarea
binar n grupe de patru cifre de la dreapta spre stnga i apoi fiecare grup se
nlocuiete cu cifra hexazecimal corespunztoare din tabelul 1.
Exemplu: 10001011001010 = 10 0010 1100 1010 = 2 2 C A (H)
4. Pentru conversia dintr-o baz B n baza 10 se utilizeaz formula
de definiie a numrului n baza B:
,
N = a
0
B
n
+ a
1
B
n1
+ . . . + a
n1
B + a
n
unde coeficienii sunt cifrele reprezentrii n baza B.
De exemplu, . 678
9
= 6 9
2
+ 7 9
1
+ 8 9
0
= 486 + 63 + 8 = 557
10
1.1.2. Reprezentarea numerelor fracionare
n acest caz reprezentarea are dou pri: partea ntreag i partea
fracionar:
, N = a
0
B
n
+ a
1
B
n1
+ . . . + a
n1
B + a
n
B
0
+ a
n+1
B
1
+ a
n+2
B
2
+ . . . + a
n+m
B
m
unde puterile negative ale bazei marcheaz partea fraionar.
Astfel, numrul binar 101,111 se scrie:
101, 111 = 1 2
2
+ 0 2
1
+ 1 2
0
+ 1 2
1
+ 1 2
2
+ 1 2
3
= 5 + 0, 5 + 0, 25 + 0, 125;
aadar,
101,111
2
=5,875
10
.
Conversia unui numr fracionar subunitar din baza 10 n binar, se face
prin multiplicri succesive cu 2 i reinerea prii ntregi:
0,8125
10
=( ? )
2
;
0,8125x 2 = 1,6250; 0,625 x 2 = 1,250 ; 0,25 x 2 = 0,50 ; 0,5 x 2 = 1,0 ;
0,8125
10
= 0,1101
2
.
1.1.3. Reprezentarea numerelor pozitive i negative
n sistemul binar, prima i ultima cifr binar (bit) dintr-un ir au
denumiri specifice:
6
- primul bit (din extrema stng) este numit "cel mai semnificativ bit"
sau MSB (Most Significant Bit);
- ultimul bit (din extrema dreapt) este numit " cel mai puin
semnificativ bit" sau LSB ( Least Significant Bit).
MSB LSB
bit 0 bit 1 bit 2 bit n bit n-1 bit n-2
Fig. 1
. . . . . . . .
n sistemul binar existnd doar dou simboluri, pentru specificarea
semnului s-a introdus urmtoarea convenie: pentru "+" se utilizeaz "0" iar
pentru "-" se utilizeaz "1"; bitul de semn este MSB.
Exemplu: numrul negativ -15 se reprezint: 1 0 0 0 1 1 1 1
ceea ce se mai numete "octet cu semn"; n timp ce valoarea unui octet fr
semn este cuprins ntre 0 . . 255, cea a unui octet cu semn are domeniul
-127. . +127.
Numerele negative se pot reprezenta n trei moduri: ca numr binar cu
semn (exemplul de mai sus), n complement fa de 1 i n complement fa
de 2; ultimele dou s-au introdus pentru nlocuirea scderii cu adunarea.
Complementul fa de 1 al unui numr binar se obine prin
schimbarea fiecrui bit n bitul complementar: 1 devine 0 iar 0 devine 1.
Exemplu: 0100 1011 n compl. 1 devine 1011 0100.
Complementul fa de 2 al unui numr binar se obine din
complementul fa de 1 prin adunare cu unu. Este utilizat pentru nlocuirea
unei scderi, cu adunarea complementului fa de 2.
Exemplu:
0100 1011 n compl. 2 devine 1011 0100 + 1 = 1011 0101.
S verificm nlocuirea scderii cu adunarea complementului:
Fie N = 0101 0000
2
= 80
10
i M = 0100 1011
2
= 75
10
; atunci avem:
N - M = 0101 0000 - 0100 1011 = 0101 0000 + ( 80)
1011 0101 (compl.2) (-75)
0000 0101 = 5
10
( 5)
Adunarea i scderea vor da rezultate corecte dac nu apar depiri ale
limitelor de reprezentare (overflow - depirea numrului de bii ai
reprezentrii sau borrow - mprumut la rangul superior lui MSB).
n cazul nmulirii a dou numere n binar se consider c rezultatul va
avea o lungime dubl (numr de bii) fa de lungimea operanzilor.
n cazul mpririi se detecteaz tentativa de mprire prin zero care
poate produce rezultate eronate.
Toate microprocesoarele au n setul de instruciuni operaiile de
adunare i scdere dar nu toate au operaiile de nmulire i mprire.
Acestea pot fi implementate n programe utiliznd diferii algoritmi.
7
1.1.4. Reprezentarea numerelor n virgul fix i n virgul mobil
Reprezentarea n virgul fix utilizeaz un numr fix de bii pentru
partea ntreag i respectiv pentru cea fracionar. Pentru partea ntreag se
utilizeaz regula de reprezentarea a numerelor ntregi cu semn iar pentru cea
fracionar, regula de reprezentare a ntregilor fr semn. Se utilizeaz, de
regul, urmtoarele convenii:
- se rezerv un ir de bii pentru numrul total de cifre ale numrului
(inclusiv bitul de semn) - zona I;
- se rezerv un ir de bii pentru exprimarea numrului de cifre ale prii
fracionare - zona II;
- se reprezint numrul n binar prin irul de bii care rezult alturnd
zona I, zona II, partea ntreag, partea fracionar, fr nici o delimitare.
Reprezentarea n virgul fix se utilizeaz n unele sisteme de
conducere cu calculator a mainilor unelte (sisteme de poziionare) i n
domeniul financiar - contabil.
La acestea din urm, reprezentarea n virgul fix are avantajul c toate
puterile lui 10 care se ncadreaz n domeniul de valori stabilit, sunt
reprezentate exact. Pentru a reprezenta sume de bani, sunt suficiente dou
cifre dup virgul. La un bilan financiar, este esenial ca operaiile aritmetice
s se fac exact. Din aceste motive, n programele aplicative din domeniul
economic se utilizeaz reprezentarea numerelor fracionare n virgul fix.
Reprezentarea n virgul mobil are un format standard n funcie de
numrul de bii ai reprezentrii, fiind utilizate reprezentrile pe 32 de bii, 64
de bii i 80 de bii.
0 7 8 15 23 31
S S Exponent
Mantisa
Fig. 2 Reprezentarea n virgul mobil pe 32 de bii.
Pentru reprezentare, numrul se exprim ca produs dintre un numr
subunitar cu semn (mantisa) i o putere a lui 2 (exponent = ntreg cu semn):
N = M 2
Exp
, 2
1
M < 2
0
;
Mantisa M se numete normalizat dac prima cifr dup virgul este
diferit de zero.
Din figura 2 rezult c n reprezentarea n virgul mobil pe 32 de bii
se aloc 8 bii pentru exponent i 24 de bii pentru mantis; n acest caz,
domeniul de reprezentare este , fiind mult extins fa de (2
127
. . . 2
127
)
reprezentarea n virgul fix pe acelai numr de bii.
8
Exponentul se reprezint de obicei deplasat, n sensul c se memoreaz
un numr de forma E + K, unde K este o constant astfel aleas nct E + K
s fie totdeauna pozitiv. n acest mod nu mai este necesar bitul de semn, care
este totdeauna zero.
Prima cifr semnificativ a mantisei normalizate fiind 1, aceast cifr
nu se mai reprezint, ctigdu-se astfel un bit n spaiul de memorare (n
care se poate reprezenta bitul de semn).
Cea mai utilizat reprezentare standardizat este cea pe 32 de bii
numit n simpl precizie.
Exponentul are 8 bii i se reprezint intern adunat cu 127. Mantisa este
normalizat i nmulit cu 2, astfel nct condiia de normalizare devine:
. 1 M < 2
Bitul cel mai reprezentativ al mantisei nu se mai reprezint intern, fiind
totdeauna 1. Formula de reprezentare este dat de relaia:
, x = (1)
s
1 f
22
f
21
. . .f
1
f
0
2
e127
unde s este bitul de semn, e este exponentul mrit cu 127 iar cei 23 de bii
formeaz mantisa normalizat, notat de obicei cu f (de la flotant); cel de-al
24 -lea bit al mantisei, de valoare 1, nu se reprezint intern.
n tabloul urmtor sunt prezentai cei 4 octei n ordinea aezrii lor n
memorie, n sensul cresctor al adreselor.
Tab.2
f7 f6 f5 f4 f3 f2 f1 f0
f15 f14 f13 f12 f11 f10 f9 f8
e0 f22 f21 f20 f19 f18 f17 f16
s e7 e6 e5 e4 e3 e2 e1
Exponentul deplasat (mrit cu 127) ia valori ntre 1 i 254. Valoarea 0
este permis numai pentru reprezentarea valorii reale 0.0 (cnd s=0, f=0) iar
valoarea 255 (0FFH) se utilizeaz pentru cazuri de excepie, -INF i +INF
care sunt considerate depiri aritmetice.
- INF : e = 0FFH f = 7FFFFFH s = 1
+INF : e = 0FFH f = 7FFFFFH s = 0
Cel mai mic numr pozitiv reprezentabil este , caracterizat de 1.17 10
38
s=0, f=0, e=1.
Cel mai mare numr pozitiv reprezentabil are valoarea aproximativ
, caracterizat de s=0, f=7FFFFFH, e=0FEH. 3.4 10
38
Tab 3.:
Numr Reprezentare pe 32 de bii Obs.
0,0 00 00 00 00 s=0, f=0, e=0
9
1,0 00 00 80 3F s=0, f=0, e=7F H
2,0 00 00 00 40 s=0, f=0, e=80 H
0,5 00 00 00 3F s=0, f=0, e=7E H
-1,0 00 00 80 BF s=1, f=0, e=7F H
Observaii:
1. La aceeai mantis putem avea exponeni diferii, ceea ce nseamn
c virgula nu este fix ci se deplaseaz n funcie de mrimea i semnul
exponentului. De aceea numele reprezentrii este ''n virgul mobil'' sau ''n
virgul flotant''. Avantajul reprezentrii este domeniul de valori foarte extins
pentru aplicaii obinuite: . 10
38
10
38
2. Se reprezint exact numai numerele reale care se pot exprima ca
sume de puteri pozitive i negative ale lui 2; celelalte numere, ca de exemplu
0.3, 0.7, 0.001 etc., nu pot fi reprezentate exact n virgul mobil. De aceea,
acest sistem de reprezentare nu se utilizeaz n programele de aplicaii pentru
domeniile economico - financiare.
3. Calculele aritmetice sunt aproximative dar precizia este suficient de
bun pentru aplicaiile uzuale. n cazul reprezentrii n simpl precizie, pe 32
de bii, eroarea de reprezentare este de . 10
7
n cazul reprezentrii n dubl precizie, pe 64 de bii, mantisa este de
53 de bii iar exponentul de 11 bii (deplasat cu 1023).
Valoarea unui numr real n dubl precizie este dat de expresia:
, x = (1)
s
1 f
51
f
50
f
49
. . .f
1
f
0
2
e1023
unde s este bitul de semn, e este exponentul mrit cu 1023 iar cei 52 de bii
formeaz mantisa normalizat, notat cu f ; cel de-al 53 -lea bit al mantisei,
de valoare 1, nu se reprezint intern.
Structura celor 8 octei, aa cum sunt stocai n memorie, n ordinea
cresctoare a adreselor este dat n tabloul urmtor (4).
Tab. 4
f7 f6 f5 f4 f3 f2 f1 f0
f15 f14 f13 f12 f11 f10 f9 f8
f23 f22 f21 f20 f19 f18 f17 f16
f31 f30 f29 f28 f27 f26 f25 f24
f39 f38 f37 f36 f35 f34 f33 f32
f47 f46 f45 f44 f43 f42 f41 f40
e3 e2 e1 e0 f51 f50 f49 f48
s e10 e9 e8 e7 e6 e5 e4
Reprezentrile de 32 i 64 bii sunt formate normalizate recunoscute de
forurile tiinifice internaionale.
10
Reprezentarea n precizie extins, pe 80 de bii, are o mantis
normalizat de 64 de bii i un exponent de 15 bii (deplasat cu +16383).
Valoarea unui numr real n dubl precizie este dat de expresia:
, x = (1)
s
1 f
62
f
61
f
60
. . .f
1
f
0
2
e16383
unde s este bitul de semn, e este exponentul mrit cu 16383 iar cei 63 de bii
formeaz mantisa normalizat, notat cu f ; cel de-al 64 -lea bit al mantisei,
de valoare 1, se reprezint intern ca bit constant de valoare 1 (cu excepia
numrului 0.0 cnd i acest bit are valoarea 0.
Structura celor 10 octei, aa cum sunt stocai n memorie, n ordinea
cresctoare a adreselor este dat n tabloul urmtor (5).
Tab.5
f7 f6 f5 f4 f3 f2 f1 f0
f15 f14 f13 f12 f11 f10 f9 f8
f23 f22 f21 f20 f19 f18 f17 f16
f31 f30 f29 f28 f27 f26 f25 f24
f39 f38 f37 f36 f35 f34 f33 f32
f47 f46 f45 f44 f43 f42 f41 f40
f55 f54 f53 f52 f51 f50 f49 f48
1 f62 f61 f60 f59 f58 f57 f56
e7 e6 e5 e4 e3 e2 e1 e0
s e14 e13 e12 e11 e10 e9 e8
Familia de microprocesoare Intel 80x86 dispune de circuite specializate
(8087, 80287, 80387- coprocesoare aritmetice) pentru calcule n virgul
mobil, care utilizeaz toate cele trei forme de reprezentare.
Intel 486 i Pentium conin coprocesoare aritmetice n structura lor
intern. Limbajul de asamblare specific acestor procesoare dispune de
directive pentru definirea constantelor i variabilelor n toate cele trei forme
de reprezentare.
1.1.5. Coduri binare
Sistemul binar prezentat anterior este numit adesea binar natural. La
nceputurile informaticii toate programele i datele erau transformate n cod
binar de ctre utilizator i introduse n calculator sub aceast form. irurile
nesfrite de 0 i 1 n binar natural erau dificil de introdus, de verificat, de
corectat. Erorile erau inevitabile.
Pentru reducerea acestor dificulti, au fost inventate variante ale
codului binar mai uor de folosit i mai rezistente la erori. Un asemenea cod
11
este cel Zecimal Codat Binar sau BCD n englez (Binary Coded Decimal).
Prin utilizarea codului BCD o mare parte din problemele de conversie sunt
transferate calculatorului. Operaiile aritmetice efectuate n cod BCD necesit
corecii ale rezultatului ( exist instruciuni de corecie) pentru ca acesta s
corespund codului binar natural. n esen, regulile sunt:
- fiecare cifr zecimal este nlocuit de 4 bii = 1 nibble;
- se utilizeaz cifrele zecimale 0, 1, 2, . . ,9;
- valorile binare superioare lui 9 = 1001, sunt interzise.
Se utilizeaz dou forme ale codului BCD:
Tab. 6
Zecimal (Z) Binar (B) BCD
compactat
BCD
necompactat
0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 0 0 1 0 0 0 0 0 0 0 1
2 1 0 0 0 1 0 0 0 0 0 0 0 1 0
3 1 1 0 0 1 1 0 0 0 0 0 0 1 1
4 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0
5 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1
6 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0
7 1 1 1 0 1 1 1 0 0 0 0 0 1 1 1
8 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0
9 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1
1. BCD compactat: 4 bii pentru o cifr zecimal = digit (4 bii / digit);
2. BCD extins sau necompactat: un octet pentru un digit (8 bii / digit); n
acest caz primii 4 bii ai octetului nu sunt utilizai (rmn 0).
Tab.7
Zecimal
(Z)
Binar (B) BCD (compactatat)
zeci uniti
BCD (necompactat)
zeci uniti
15 1111 0001 0101 000000001 00000101
31 100001 0011 0001 000000011 00000001
70 1000110 0111 0000 000000111 00000000
81 1010001 1000 0001 000001000 00000001
99 1100011 1001 1001 000001001 00001001
100 1100100 0001 0000 0000 00000001 00000000 00000000
1.1.6. Erori n BCD i corecii
12
n BCD compactat exist 6 combinaii de patru bii inexistente i anume
cele corespunztoare numerelor 10, 11, 12, 13, 14, 15, respectiv 1010, 1011,
1100, 1101, 1110, 1111. n cazul operaiilor cu numere n BCD apar erori
care trebuie corectate automat de ctre microprocesor.
Microprocesoarele dispun de instruciuni specifice care corecteaz
rezultatul n funcie de tipul operaiei, dar acestea sunt introduse n programe
de ctre programator.
1. Depirea capacitii digitului inferior:
Iat un prim caz de eroare. S presupunem c adunm n BCD 5+5;
rezultatul nu mai poate fi reprezentat n BCD pe un singur digit (cel inferior),
dar microprocesorul lucreaz de fapt numai n binar natural i rezultatul va fi:
0000 0101+
0000 0101
0000 1010 (codul 1010 nu exist n BCD)
Principiul coreciei este simplu: dac digitul inferior are o combinaie
inexistent, se adun aceast combinaie binar cu 0110 = 6 n zecimal, ceea
ce corespunde numrului de combinaii binare interzise:
0000 1010+
0000 0110
0001 0000 = 10 (5+5=10), deci corect.
2. Depirea capacitii digitului superior.
Problema este aceeai dar este afectat digitul superior. n acest caz
corecia se face adunnd 60 scris n BCD : 0110 0000.
Calculele se desfoar astfel:
0101 0000 + (50 n BCD)
0101 0000 (50 n BCD)
1010 0000 + (cod inexistent n BCD)
Corecie: 0110 0000 (se adun 60)
1 0000 0000 (se obine 100 n BCD, corect)
Se observ c s-a generat transport spre stnga care este memorat de un
indicator de transport.
3.Generarea unui transport ntre cei doi digii
n acest caz eroarea este produs prin propagarea unui bit de transport
de la digitul inferior spre cel superior. Acest tip de eroare apare, de exemplu,
la adunarea 8+9=17, n BCD. Corecia se face, din nou, prin adugarea
numrului 06 n BCD:
0000 1000+ (8 n BCD)
0000 1001 (9 n BCD)
0001 0001 + (11 n BCD - incorect)
Corecie: 0000 0110 (se adun 06 n BCD)
0001 0111 (rezultat corect: 17! n BCD)
13
n unitile aritmetice ale microprocesoarelor, transportul de la bitul 4
spre bitul 5 (ntre cei doi digii) este memorat de un indicator special numit
"de semitransport " iar valoarea sa determin operaia de corecie.
4. Transport generat de digitul superior
Dac digitul superior al sumei genereaz transport, corecia se face tot
prin adunarea cu 0110 la digitul superior:
1000 0000 + (80 n BCD)
1001 0000 (90 n BCD)
1 0001 0000 (110 n BCD, rezultat greit)
Corecie: 0110 0000 (se adun 60 n BCD)
1 0111 0000 (170 n BCD, rezultat corect)
5. Combinarea cazurilor 2 i 3
Dac se realizeaz simultan cazurile 2 i 3, corecia se face prin
adunarea lui 06 pentru cazul 3 i adunarea lui 60 pentru cazul 2; aadar, se
adun n total 66: 0101 1000+ (58 n BCD)
0101 1001 (59 n BCD)
1011 0001 (rezultat greit, czurile 2 i 4)
Corecie: 0110 0110 (se adun 66 n BCD)
1 0001 0111 (117 n BCD, rezultat corect)
Concluzie. Cnd se execut adunri n cod BCD, se apeleaz imediat
instruciuni de corecie a erorilor; acestea acioneaz n funcie de:
- indicatorul de transport (Carry Flag);
- indicatorul de semitransport (Auxiliary Carry) ;
- prezena codurilor inexistente n BCD;
n funcie de caz, corecia se face prin adugarea unuia din numerele:
00, 06, 60, 66. n limbaj de asamblare (Intel 8086, 80x86, . . . ) instruciunile
apelate sunt:
- DAA ( Decimal Adjust on Addition), ajustare zecimal la adunare;
- DAS ( Decimal Adjust on Substraction), ajustare zecimal la
scdere, caz n care erorile care apar sunt identice.
Corecia const n adugare de valori la adunare sau prin scderea
acelorai valori la scdere, acestea din urm fiind tot adunri dar n
complement fa de 2.
Detecia codurilor inexistente (n BCD), reprezentnd depiri de
capacitate se face astfel: pentru digitul superior, dac b
7
=1 i simultan b
5
=1
sau b
6
=1; pentru digitul inferior, dac b
3
=1 i simulta b
1
=1 sau b
2
=1;
(am considerat notarea biilor astfel: b
7
b
6
b
5
b
4
b
3
b
2
b
1
b
0
)
14
Tab. 8 : Codul ASCII (American Standard Code f or Inf ormation Interchange)
0 32 ? 64 @ 96 ` 128
160
192
224
1 33 ! 65 A 97 a 129
161
193
225
2 L 34 " 66 B 98 b 130
162
194
226
3
35 # 67 C 99 c 131
163
195
227
4
36 $ 68 D 100 d 132
164
196
228
5
37 % 69 E 101 e 133
165
197
229
6
38 & 70 F 102 f 134
166
198
230
7 b 39 ' 71 G 103 g 135
167
199
231
8 T 40 ( 72 H 104 h 136
168
200
232
9 41 ) 73 I 105 i 137
169
201
233
10 42 * 74 J 106 j 138
170
202
234
11
J
43 + 75 K 107 k 139
171
203
235
12
K
44 , 76 L 108 l 140
172
204
236
13 45 - 77 M 109 m 141
173
205
237
14 N 46 . 78 N 110 n 142
174
206
238
15 47 / 79 O 111 o 143
175
207
239
16 4 48 0 80 P 112 p 144
176
208
240
17 3 49 1 81 Q 113 q 145
177
209
241
18 b bb b 50 2 82 R 114 r 146
178
210
242
19
!!
51 3 83 S 115 s 147
179
211
243
20 52 4 84 T 116 t 148
180
212
244
21 53 5 85 U 117 u 149
181
213
245
22 _ 54 6 86 V 118 v 150
182
214
246
23
Q
55 7 87 W 119 w 151
183
215
247
24 56 8 88 X 120 x 152
184
216
248
25 57 9 89 Y 121 y 153
185
217
249
26 58 : 90 Z 122 z 154
186
218
250
27 59 ; 91 [ 123 { 155
187
219
251
28 S 60 < 92 \ 124 | 156
188
220
252
29 61 = 93 ] 125 } 157
189
221
253
30 5 62 > 94 ^ 126 ~ 158
190
222
254
31 6 63 ? 95 _ 127 159
191
223
255
15
Codul ASCII (American Standard Code for Information
Interchange), este un cod binar alfanumeric, pe 8 bii, care realizeaz
reprezentarea n binar a caracterelor imprimabile sau nu. Codul ASCII a fost
definit de Institutul American de Standarde. La origine pe 7 bii (128 de
simboluri), a fost dezvoltat de IBM la 8 bii, rezultnd 256 simboluri (codul
fiecrui simbol este reprezentarea n binar a numrului su de ordine)
16