CATEGORII DOCUMENTE |
BAZELE ARITMETICE ALE SISTEMELOR DE CALCUL
FUNCTIONAREA UNUI SISTEM DE CALCUL ARE CA FUNDAMENT MATEMATIC:
concepte aritmetice si algebrice;
sisteme de numeratie
operatii cu numere reprezentate in diverse sisteme de numeratie
reprezentarea numerelor rationale cu baza si exponent
coduri pentru reprezentarea informatiei
structuri algebrice
reprezentarea informatiei in memoria sistemelor de calcul
concepte logice;
algebra booleana
inelul boolean
functii si expresii booleene
structuri si expresii Reed-Muller
structuri si expresii Post
structuri si expresii Galois
paralelismul valoare logica - cifra binara
functii polivalente de variabile polivalente
circuite combinationale.
Reprezentarea informatiei intr-un sistem de calcul se realizeaza cu ajutorul sistemelor de numeratie si al codurilor.
SISTEME DE NUMERATIE
Prin sistem de numeratie intelegem totalitatea regulilor de reprezentare a numerelor cu ajutorul unor simboluri numite cifre.
Sistemele de numeratie se clasifica in:
pozitionale (de exemplu: sistemele binar, zecimal, hexazecimal),
nepozitionale (de exemplu: sistemul roman).
Orice sistem de numeratie pozitional este caracterizat prin numarul total de simboluri (cifre) distincte ale sistemului, denumit baza sistemului de numeratie, numar ce va fi notat in continuare prin b.
Exemple de sisteme de numeratie:
a) Sistemul binar, are baza 2; cifrele sunt 0, 1;
b) Sistemul octal, are baza 8; cifrele sunt 0, 1, 2, 3, 4, 5, 6, 7;
c) Sistemul zecimal, are baza 10; cifrele sunt 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;
d) Sistemul hexazecimal, are baza16; cifrele sunt 0, 1, 2, 3, 4, 5, 6, 7, 9, A, B, C, D, E, F.
Sistemele de calcul folosesc acele sisteme de numeratie care prin caracteristicile lor prezinta avantaje in ceea ce priveste realizarea circuitelor si calculelor (de exemplu: sistemul binar, hexazecimal, octal).
TEOREMA SISTEMELOR DE NUMERATIE
Lema 1. Fie bI N* ,b >1. Oricare ar fi numarul natural NI N* exista numerele naturale n, a0, a1, , an, N0, N1, , Nn-1, astfel incat:
N = b N0 + a0 , 0 a0 < b
N0 = b N1 + a1 , 0 a1 < b
.
Nn-2 = b Nn-1 + a n-1 , 0 an-1 < b
Nn-1 = an , 0 < an < b .
Demonstratie. Daca n < b , luam n = 0 , a0 = N si lema este demonstrata. Daca N b , fie N0 , a0 I N astfel incat:
N = bN0 + a0 , 0 a0 < b
Deoarece N b , atunci N0 > 0. Fie N1 , a1I N astfel incat:
N0 = bN1 + a1 , 0 a1 < b
s.a.m.d.
Daca Ni , atunci din 1 < b rezulta:
Ni < bNi bNi + ai = Ni-1 prin urmare:
N > N0 > N1 > > Ni-1 > Ni >
Exista asadar n I N astfel incat Nn-1 si Nn = 0, caz in care avem:
0 < Nn-1 = an < b si lema este demonstrata.
Lema 2. Fie b , a0 , a1 , , an I N astfel incat b > 1, 0 ai < b pentru 0 i < n si 0 < an < b. Atunci < bn+1.
Demonstratie. Deoarece ai b-1 pentru i = 0 , 1, , n atunci:
.
Teorema 1. (Teorema sistemelor de numeratie). Fie b I N * , b >1.. Oricare ar fi numarul N > 0, exista numerele naturale n, a0, a1, , an unic determinate astfel incat:
N = an bn + an-1 bn-1 + + a1b + a0 , unde 0 < an < b ,0 ai < b pentru i = 0 , 1 , , n-1.
Demonstratie. Conform lemei 1 exista n, a0, a1, , an, N0, N1, , Nn-1, astfel incat:
N = b N0 + a0 , 0 a0 < b
N0 = b N1 + a1 , 0 a1 < b
.
Nn-2 = b Nn-1 + a n-1 , 0 an-1 < b
Nn-1 = an , 0 < an < b.
Inmultind aceste egalitati respectiv cu 1, b, b2 , , bn si adunand membru cu membru rezulta:
N = an bn + an-1 bn-1 + + a1b + a0
Demonstram unicitatea numerelor n, a0, a1, , an.
Presupunem ca ar mai exista numerele p, c0 , c1, , cp I N astfel incat:
N = cpbp + cp-1 bp-1 + + c1b + c0 .
Daca n < p atunci n + 1 p si in baza lemei 2 rezulta:
deci N < N asadar, contradictie.
Analog, se arata ca nu este posibil ca p < n deci n = p.
Demonstram acum ca ai = ci (i=0 , 1 , ,n).
Daca n = 0, atunci a0 = N = c0 . Presupunem ca n > 0 si ca afirmatia este adevarata pentru n - 1 .
Din egalitatile :
N = a0 + b(anbn-1 + + a1) = c0 + b(cnbn-1 + +c1)
unde 0 a0 < b , 0 c0 < b, folosind teorema de impartire cu rest care asigura unicitatea catului si restului impartirii lui N la b (vezi teorema 2), rezulta:
a0 = c0
si
anbn-1 + + a2 b + a1 = cnbn-1 + + c2 b + c1
Folosind ipoteza inductiei , din ultima egalitate deducem ca:
ai = ci , i = 1, 2, ,n.
Observatii.
(i). Din teorema precedenta rezulta ca se stabileste o corespondenta biunivoca intre numerele naturale N > 0 si secventele finite an an-1 a1a0 de numere naturale ai <b cu an
Numarului natural N > 0 facem sa-i corespunda secventa finita de numere naturale
an an-1 a1a0
unde
ai < b , 0 i n , an si N = .
Prin urmare:
an an-1 a1a0 = an bn + an-1 bn-1 + + a1b + a0
(ii). Cand se impune sa se mentioneze baza sistemului de numeratie (de exemplu, in cazul in care se lucreaza cu mai multe baze), este obisnuit sa se noteze an an-1 a1a0(b).
Prezentam in continuare teorema impartirii cu rest, a carei demonstratie se bazeaza pe lema lui Arhimede, cunoscuta fiind importanta ei in studiul sistemelor de numeratie.
1.2. LEMA LUI ARHIMEDE
(i) LEMA LUI ARHIMEDE (PENTRU NUMERE NATURALE)
Daca m, n I N , n , atunci exista kI N , astfel incat kn > m.
Demonstratie. Daca m = 0 , k poate fi 1, 2, iar daca n = 1 atunci k poate fi m+1, m+2, .
Fie m si n . Deci exista l astfel incat n = succ (l), l , adica n = l + 1; atunci mn = m(l + 1) = ml + m > m, deoarece ml > 0 , deci k = m , m + 1 , .
Fie k = m + 1, atunci kn = (m + 1)n = mn + n > mn m , deci kn > m.
(ii) LEMA LUI ARHIMEDE (PENTRU NUMERE INTREGI)
Daca a, b IZ , a > 0 , exista n I N astfel incat na > b.
Demonstratie. Daca b > 0 ne situam in cazul numerelor naturale; daca b este evident ca pentru orice n I N avem na > 0 b
Teorema 2. (Teorema impartirii cu rest). Daca a si b sunt doua numere intregi si b , atunci exista doua numere intregi q si r, unic determinate astfel incat:
a = bq + r , 0 r <| b |,
(q se numeste cat, iar r rest).
Demonstratie. Fie M = . Se arata ca M
Aplicam lema lui Arhimede numerelor |b| > 0 si -a; rezulta ca exista n I N astfel incat n |b| > - a. Atunci numarul n|b| + a > 0 apartine lui M, unde se va lua, dupa caz, s = n sau s = -n .
Multimea M este o multime nevida de numere naturale, deci are un prim element r
Aratam ca r < |b|. Daca r |b| ar rezulta ca:
r = a - bq, q IZ , 0 t = r - | b| = a - bs < r
cu s = q +1 sau s = q - 1, dupa caz. Atunci ar exista p I M, t < r ceea ce este contradictoriu cu faptul ca r este primul element al multimii M.
Exista deci q si r astfel incat
a = bq +r , 0 r |b|
Demonstram unicitatea numerelor q si r.
Procedam prin reducere la absurd. Presupunem ca mai exista q1 si r1 astfel ca:
a = bq1 + r1, 0 r1 < |b|.
Atunci
|b| |q-q1| = |r - r1 |.
Daca q-q1 atunci |q-q1| 1, |b| |q-q1| b si mai departe |b|>r1 r1- r=|r1-r| b, ceea ce este contradictoriu. Deci q = q1 si r = r1.
Observatie. O varianta a teoremei precedente este urmatoarea:
Daca m, nI Z, n , atunci exista q, rI Z, astfel incat m = nq+ r , |r|<|n|.
Perechea de intregi din aceasta varianta nu este insa unica.
Exemplu. |1 |< |-4|,
-15 = (-4) |-3| < |4|.
Intr-un sistem de numeratie cu baza b, un numar rational N format din parte intreaga si parte fractionara se poate reprezenta intr-una din urmatoarele trei forme:
N = ,
unde b este baza sistemului, ai sunt cifre, n+1 este numarul de cifre al partii intregi, m este numarul de cifre ale partii fractionare, an este cifra cea mai semnificativa, a-m este cifra cea mai putin semnificativa;
ai b-1 , m i < n , 0 < an b-1
Daca m = 0, numarul N este intreg.
Este evident faptul ca cele trei forme sunt echivalente.
Nu ne propunem sa intram in detalii pur teoretice; mentionam insa faptul ca orice numar real xIR se reprezinta in mod unic sub forma:
x = [x]+ , [x]IZ , 0 <1
unde [x] reprezinta partea intreaga a lui x, iar partea fractionara a lui x.
Sistemele de numeratie, in functie de baza au o serie de proprietati care constituie criteriile pentru selectarea lor in operatiile de codificare, prelucrare sau transmitere a informatiei.
De exemplu, sistemul binar care poseda doua cifre 0 si 1, este cel mai potrivit pentru a fi utilizat in sistemele de calcul care sunt construite in principal din elemente cu doua stari stabile, putandu-se obtine o reprezentare fizica a informatiei prin atribuirea uneia dintre starile dispozitivului a cifrei 0 iar celeilalte a cifrei
Prin conectarea mai multor elemente de acest tip se obtine un dispozitiv numit registru. Registrul va putea deci contine o succesiune de cifre binare (biti), a carei lungime depinde de numarul elementelor conectate. Un exemplu de registru cu 8 biti, care contine numarul (11001001)(2), este prezentat mai jos:
Observatie. Pentru separarea partii intregi de partea fractionara vom utiliza punctul in locul virgulei.
In legatura cu reprezentarea numerelor intr-o baza se pun urmatoarele probleme:
1). Stabilirea raportului de marime intre doua numere reprezentate in aceeasi baza.
2). Stabilirea unor reguli (algoritmi) de efectuare a sumei, produsului, etc. a doua numere reprezentate in aceeasi baza.
3). Elaborarea unor algoritmi pentru reprezentarea unui numar intr-o baza data.
4). Conversia unui numar dintr-un sistem de numeratie in altul (dintr-o baza in alta).
1.3. COMPARAREA NUMERELOR REPREZENTATE INTR-O BAZA
Teorema urmatoare furnizeaza un criteriu de stabilire a raportului de marime intre doua numere naturale reprezentate in aceeasi baza.
Teorema 3. Fie a, cIN, a = amam-1 a1a0(b) si c = cncn-1 c1c0(b). Atunci a<c daca si numai daca m<n sau m = n si ap<cp, unde p este cel mai mare i astfel incat ai ci , deci p = max.
Demonstratie. Daca m < n, atunci in baza lemei 1 rezulta a < bm+1 bn c
Daca m = n si ap < cp atunci
c-a = (cp-ap)bp+(cp-1bp-1++c0)-(ap-1bp-1++ao) >
> (cp-ap)bp+(cp-1bp-1++c0)-bp bp+(cp-1bp-1++c0)-bp
de unde c-a > 0, deci a < c.
Reciproc, presupunem ca a < c. Atunci m n, deoarece ap > cp implica, conform primei parti a demonstratiei ca c < a.
1.4. ALGORITMI PENTRU CALCULUL SUMEI SI PRODUSULUI A DOUA NUMERE REPREZENTATE IN ACEEASI BAZA
Ne propunem acum sa formulam un algoritm pentru adunarea a doua numere naturale reprezentate in baza b si sa schitam un algoritm pentru inmultirea a doua numere naturale.
Fie a , c IN , a = amam-1a1a0(b) , c = cncn-1c1c0(b) ; vrem sa gasim cifrele so,s1, ale numarului a + c in baza b.
Avem:
a = a0 + a1b + a2b2 + + ambm
c = c0 + c1b + c2b2 + + cnbn
Din a0 < b , c0 < b, rezulta a0 + c0 < 2b deci a0 + c0 = e b + s0 s0 < b, e sau e sau mai precis:
s0=
Rezulta ca:
a + c = s0 +(a1 + c1 + e )b + (a2 + c2)b2 +
Este evident faptul ca:
(a1 + c1 + e ) < 2b
de unde
(a1 + c1 + e e b + s1 , 0 s1 <b , cu e sau e
a + c = s0 + s1b +(a2 + c2 + e )b2 +
Rezulta ca cifrele s0 , s1, ale sumei s = a + c sunt:
si = (ai + ci + ei) mod b , i = 0,1,2,
unde e , iar pentru i >0:
ei ai-1+ci-1+ei-1 <b
si atunci
si-1 = ai-1 + ci-1 +ei-1 -b.
Daca m = n numarul a + c are:
m cifre , daca am + cm + em < b
2.) m+1 cifre, daca am + cm + em b, cifra de rang m+1 fiind in acest caz sm+1 =1.
Daca m n, de exemplu daca m > n , atunci raman adevarate cele mai de sus luand cn+1 == cm = 0.
Reprezentam in pseudocod algoritmul de adunare a doua numere naturale reprezentate in baza b;
Pasul 1. Citeste m, n; a0, a1,.,am; c0,c1,.,cn;
Pasul 2. Daca m>n atunci cn+1 := cn+2 :=.:= cn := 0
altfel daca m<n atunci am+1 := am+2 := . := an :=0;
Pasul 3. Pentru i := 0, max(m,n) executa
εi := 0;
Daca ai + ci + εi< b atunci si := ai+ bi+ εi ; εi+1 := 0
altfel si := ai+ bi+ εi-b ; εi+1 := 1;
Pasul 4. Daca εi atunci scrie s0, s1,.,si-1
altfel scrie s0, s1,.,si-1, 1.
Pasul 5. Stop.
Prezentam in continuare tabla adunarii in baza 8:
| ||||||||
Inmultirea a doua numere naturale in baza b se reduce in esenta, la urmatoarele tipuri de operatii:
a). Inmultirea unui numar natural a cu o putere bj a bazei b;
b). Inmultirea unui numar natural a cu o cifra a sistemului de numeratie (deci cu un numar natural j , 0 j <b
g). Adunarea in baza b.
a). Fie a = amam-1 a1a0(b) = ambm+ am-1bm-1+ +a1b+a0.
Atunci
a bj = ambm+j + am-1bm+j-1 + +a1b1+j+a0bj = amam-1 a1a0.
b). Daca i si j sunt doua numere naturale mai mici decat b, atunci ij < b2, de unde, folosind teorema impartirii cu rest pentru numere naturale avem:
ij = bq(i,j) + r(i,j) , 0 r(i,j) < b , 0 q(i,j) <b
catul q = q(i,j) si restul r(i,j) impartirii numarului ij prin b depinzand de i si j.
Fie
a = amam-1a1a0(b) =
si j o cifra a sistemului de numeratie cu baza b , deci 0 j<b. Atunci rezulta:
aj ===+
In sfarsit, daca
c = cncn-1c1c0(b) =
atunci
ac =.
Tabla inmultirii in baza 5 este urmatoarea:
1.5. ALGORITMUL SISTEMELOR DE NUMERATIE
Algoritmul de reprezentare a numerelor naturale N (date intr-o anumita baza) intr-o baza b, cunoscut sub denumirea de algoritmul sistemelor de numeratie este reprezentat, in pseudocod, in continuare.
Pasul 1. Citeste N, b;
Pasul 2. i := 0;
Pasul 3. Repeta ai := N mod b ; N := [N/b] ; i := i + 1;
pana_cand N = 0;
Pasul 4. Scrie a0, a1,.,ai;
Pasul 5. Stop.
Exemplu. 12345(10) = 11000000111001(2) .
1.6. CONVERSIA NUMERELOR DINTR-O BAZA IN ALTA
Existenta si utilizarea mai multor sisteme de numeratie impune problema conversiei dintr-un sistem in altul. Deoarece limbajul sistemelor de calcul este binar, vom mentiona in special trecerea din baza 10 (sau o putere a lui 2) in baza 2 si din baza 2 in baza 10 (sau o putere a lui 2).
Prezentam in continuare doua metode de conversie si anume:
1.6.1. METODA SUBSTITUTIEI
(i). Trecerea unui numar N din baza b in baza h, calculele facandu-se in baza (destinatie) h
Acest procedeu este utilizat la introducerea datelor numerice in sistemele de calcul, datele primind astfel o reprezentare binara.
Consideram numarul N in baza b. Pentru a obtine numarul N in baza h, atat baza b cat si cifrele ai se scriu in baza h si se efectueaza ridicarile la putere, inmultirile si adunarile necesare, in baza h.
Exemplu. 1234(5) = ?(2) .
= 1
= 1111101 + 110010 + 1111 + 100 =
= 11000010(2);
1(5) = 1(2) ; 2(5) = 10(2) ; 3(5) = 11(2) ; 4(5) = 100(2) ; 5(5) = 101(2).
Caz particular. Daca b = 2k (deci baza b este o putere a lui 2) atunci trecerea la baza 2 se face mai simplu transformand fiecare cifra a numarului in baza 2 si scriindu-le in grupe de cate k cifre.
Exemplu.
8 = 23 ; 7(8) = 111(2) ; 2(8) = 010(2) ; 6(8) = 110(2).
(ii). Trecerea unui numar din baza b in baza h, calculele facandu-se in baza (de pornire) b
Acest procedeu este utilizat de sistemele de calcul pentru furnizarea rezultatelor, deoarece baza veche este 2, iar baza noua este cea obisnuita (in general 10).
Se scrie noua baza h in baza b si se imparte numarul N la h scris in baza b, conform algoritmului sistemelor de numeratie. Acest algoritm evidentiaza faptul ca oricare ar fi doua numere N si h (h≠1, N>h) au loc relatiile:
N = h* N0 + a0 , 0 ≤ a0 < h ;
N0 = h*N1 + a1 , 0 ≤ a1 < h ;
N1 = h*N2 + a2 , 0 ≤ a2 < h ;
.............
Nm-2 = h*Nm-1 + am-1 , 0 ≤ am-1 < h ;
Nm-1 = h*Nm + am , 0 < am < h ,
unde a0 , a1 , ., am-1 , am sunt cifrele numarului N in baza h.
Exemplu. 5(2) = 101; 100110111(2) = 2221(5) .
Resturile in ordine inversa sunt 10, 10, 10, 1, care in baza 5 sunt respectiv 2, 2, 2, 1 deci am obtinut rezultatul mentionat initial.
Caz particular. Daca h = bk , este posibila o simplificare esentiala si anume, fiecare grup de cate k cifre ale numarului dat, de la marca zecimala spre stanga pentru partea intreaga si de la marca zecimala spre dreapta pentru partea fractionara, se transforma in baza h.
Exemple.
a). 11110101111(2) = 3657(8) ;
b). 11110101111(2) = 7AF(16) ;
c). 11010.001010011(2) = 32.123(8) .
(iii). Trecerea unui numar din baza b in baza h prin intermediul unei baze intermediare g
Metoda se reduce la cele doua anterioare de la baza b se poate trece la baza g, calculele facandu-se in noua baza (deci primul procedeu), iar de la baza g la baza h calculele se executa in baza veche (al doilea procedeu).
De obicei baza intermediara g este 10.
Exemplu.
7635(8) = 2391(12)
Observatie. Deoarece in sistemele de calcul nu se pot introduce decat numere cu un numar finit de cifre (in special in partea fractionara), numerele reale vor fi intotdeauna aproximate prin numere rationale.
Prin aceasta metoda se realizeaza conversia unui numar N din baza b in baza h utilizand aritmetica in baza h.
Conversia partii intregi a numarului se obtine prin impartiri succesive la baza h, iar conversia partii fractionare prin inmultiri succesive in baza h.
Consideram numarul N din baza b care se poate scrie:
N(b) = [N](b) + (b).
Dar
[N](b) = anhn + + a1h1 + a0h0 ,
cifrele ai (i = 0,1,.,n) fiind deocamdata necunoscute, dar se pot determina prin impartirea succesiva a lui [N](b) la h conform procedeului urmator:
.
Procesul de impartire se incheie in momentul in care [N](b) < h . Se obtine in final:
[Nn](b) = an , 0 < an < h .
Observatie. Cifra cea mai putin mai semnificativa a numarului [N](h) este a0, iar cifra cea mai semnificativa a numarului este an .
Partea fractionara a numarului N(b) se va scrie in baza h astfel:
Cifrele a-i (i = 1,2,.,m) se pot determina prin inmultiri succesive ale partii fractionare cu baza h conform urmatorului procedeu:
..
Cifra a-1 reprezinta cifra cea mai semnificativa a numarului (h), iar cifra a-m reprezinta cifra cea mai putin semnificativa.
Exemple (Verificati-va cunostintele relative la conversia unui numar dintr-un sistem de numeratie in altul, lucrand independent aplicatiile care urmeaza!)
I. Sa se treaca numarul 34562(7)
A) in baza 5; facand calculele in baza 5 ; facand calculele in baza 7; facand calculele in baza 10; facand calculele in baza 2; |
B) in baza 8; facand calculele in baza 8; facand calculele in baza 7; facand calculele in baza 10; facand calculele in baza 2; |
A) 1. 3(7) = 3(5), 4(7) = 4(5), 5(7) = 10(5), 6(7) = 11(5), 2(7) = 2(5), 7 = 12(5);
= 212303 + 20442 + 1440 + 132 + 2 = 240424(5)
= 5(7)
= 5(7)
130(7) = 5(7)
= 5(7)
2(7) = 5(7)
34562(7) = 3
= 5
= 5
= 5
= 5
34562(7) = 11
B) 1. 3(7) = 3(8), 4(7) = 4(8), 5(7) = 5(8), 6(7) = 6(8), 2(7) = 2(8), 10(7) = 7(8)
= 3
= 16043 + 2534 + 365 + 52 + 2 = 21240(8).
34562(7)= 21240(8)
=11(7)
255(7) =11(7)
=11(7)
2(7) =11(7)
34562(7) = 3
34562(7) = 10001010100000(2)
II. Sa se transforme numarul 234.128(10) in baza 8.
29 = 3 3 = 0 |
8 = 1.024 8 = 0.192 8 = 1.536 |
Pentru a obtine o conversie mai exacta, procesul de inmultire mai poate continua. Dar, cu trei zecimale exacte, putem scrie ca 234.128(10) = 352.101(8).
III. Sa se transforme numarul 175.1285(10) in baza 4.
43 = 10 10 = 2 2 = 0 |
Pentru a obtine o conversie mai exacta, procesul de inmultire mai poate continua. Cu sase zecimale exacte putem scrie ca 175.1285(10) = 2233.020032(4).
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 2740
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved