Documente Academic
Documente Profesional
Documente Cultură
2008 – 2009
REPROGRAFIA UNIVERSITĂŢII “TRANSILVANIA” DIN BRAŞOV
PARTEA ÎNTÂIA
CAPITOLUL I
SISTEME DE NUMERAŢIE
Observaţii.
1. Din teorema precedentă rezultă că se stabileşte o corespondenţă biunivocă
între numerele naturale N > 0 şi secvenţele finite an an-1 ... a1a0 de numere naturale
ai <b cu an 0.
Numărului natural N > 0 facem să-i corespundă secvenţa finită de numere
naturale
an an-1 ... a 1a0 ,
unde
n
i
ai < b , 0 i n , a n 0 şi N = a b
i 0
i .
Prin urmare:
an an-1 ... a 1a0 = an bn + an-1 bn-1 + ... + a 1b + a 0 .
2. Când se impune să se menţioneze baza sistemului de numeraţie (de exemplu,
în cazul în care se lucrează cu mai multe baze), este obişnuit să se noteze an an-1 ...
a1a0(b).
Într-un sistem de numeraţie cu baza b, un număr raţional N format din parte
întreagă şi parte fracţionară se poate reprezenta într-una din următoarele trei forme:
an an1an2 a1a0 a1a2 am
N = an b n an1b n1 a1b1 a0 b 0 a1b 1 am b m ,
n
ai b i
i m
unde b este baza sistemului, ai sunt cifre, n+1 este numărul de cifre al părţii întregi, m
este numărul de cifre ale părţii fracţionare, an este cifra cea mai semnificativă, a-m este
cifra cea mai puţin semnificativă;
0 ai b-1 , m i n , 0 < a n b-1.
Dacă m = 0, numărul N este întreg.
Este evident faptul că cele trei forme sunt echivalente.
Nu ne propunem să intrăm în detalii pur teoretice; menţionăm însă faptul că
orice număr real xR se reprezintă în mod unic sub forma:
x = [x]+{x} , [x] Z , 0 {x}<1,
unde [x] reprezintă partea întreagă a lui x, iar {x} partea fracţionară a lui x.
Sistemele de numeraţie, în funcţie de bază au o serie de proprietăţi care
constituie criteriile pentru selectarea lor în operaţiile de codificare, prelucrare sau
transmitere a informaţiei.
4
De exemplu, sistemul binar care posedă două cifre 0 şi 1, este cel mai potrivit
pentru a fi utilizat în sistemele de calcul care sunt construite în principal din elemente cu
două stări stabile, putându-se obţine o reprezentare fizică a informaţiei prin atribuirea
uneia dintre stările dispozitivului a cifrei 0 iar celeilalte a cifrei 1.
Prin conectarea mai multor elemente de acest tip se obţine un dispozitiv numit
registru. Registrul va putea deci conţine o succesiune de cifre binare (biţi), a cărei
lungime depinde de numărul elementelor conectate. Un exemplu de registru cu 8 biţi,
care conţine numărul (11001001) (2), este prezentat mai jos:
1 1 0 0 1 0 0 1
Observaţie:
Pentru separarea părţii întregi de partea fracţionară vom utiliza punctul în locul
virgulei.
În legătură cu reprezentarea numerelor într-o bază se pun următoarele probleme:
1. Stabilirea raportului de mărime între două numere reprezentate în aceeaşi
bază.
2. Stabilirea unor reguli (algoritmi) de efectuare a sumei, produsului, etc. a două
numere reprezentate în aceeaşi bază.
3. Elaborarea unor algoritmi pentru reprezentarea unui număr într -o bază dată.
4. Conversia unui număr dintr-un sistem de numeraţie în altul (dintr-o bază în
alta).
În sfârşit, dacă
n
c = cncn-1...c 1c0(b) = c j b j
j 0
atunci
n n
ac = ac j b ( ac j )b j .
j
j 0 j 0
Pasul 1. Citeşte N, b;
Pasul 2. i := 0;
Pasul 3. Repetă ai := N mod b ; N := [N/b] ; i := i + 1 ;
până_când N = 0;
Pasul 4. Scrie a0, a 1,…,ai-1;
Pasul 5. Stop.
Exemplu:
12345(10) = 11000000111001 (2) .
(i). Trecerea unui număr N din baza b în baza h, calculele făcându-se în baza
(destinaţie) h
Acest procedeu este utilizat la introducerea datelor numerice în sistemele de
calcul, datele primind astfel o reprezentare binară.
7
Considerăm numărul N în baza b. Pentru a obţine numărul N în baza h, atât baza
b cât şi cifrele ai se scriu în baza h şi se efectuează ridicările la putere, înmulţirile şi
adunările necesare, în baza h.
Exemplu:
1234(5) = ? (2) .
1234(5) = 153 + 252 + 35 + 4 =
= 1(101)3 + (10)(101)2 + (11)(101) + 100 =
= 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. Dacă b = 2k (deci baza b este o putere a lui 2) atunci trecerea la
baza 2 se face mai simplu transformând fiecare cifră a numărului în baza 2 şi scriindu-le
în grupe de câte k cifre.
Exemplu.
726(8) = 111010110 (2) ;
8 = 2 3 ; 7 (8) = 111 (2) ; 2 (8) = 010 (2) ; 6 (8) = 110(2).
(ii). Trecerea unui număr din baza b în baza h, calculele făcându-se în baza (de
pornire) b
Acest procedeu este utilizat de sistemele de calcul pentru furnizarea rezultatelor,
deoarece baza veche este 2, iar baza nouă este cea obişnuită (în genera l 10).
Se scrie noua bază h în baza b şi se împarte numărul N la h scris în baza b,
conform algoritmului sistemelor de numeraţie. Acest algoritm evidenţiază faptul că
oricare ar fi două numere N şi h (h≠1, N>h) au loc relaţiile:
N = h* N 0 + a0 , 0 ≤ a0 < h ;
N0 = h*N 1 + a1 , 0 ≤ a1 < h ;
N1 = h*N2 + a2 , 0 ≤ a2 < h ;
…………………………………
Nm-2 = h*N m-1 + am-1 , 0 ≤ am-1 < h ;
Nm-1 = h*N m + am , 0 < a m < h ,
unde a0 , a 1 , …, a m-1 , a m sunt cifrele numărului N în baza h.
Exemplu:
5(2) = 101; 100110111(2) = 2221 (5) .
Resturile în ordine inversă sunt 10, 10, 10, 1, care în baza 5 sunt respectiv 2, 2,
2, 1 deci am obţinut rezultatul menţionat iniţial.
Caz particular. Dacă h = bk , este posibilă o simplificare esenţială şi anume, fiecare
grup de câte k cifre ale numărului dat, de la marca zecimală spre stânga pentru partea
întreagă şi de la marca zecimală spre dreapta pentru partea fracţionară, se transformă în
baza h.
Exemple:
a). 11110101111 (2) = 3657 (8) ;
b). 11110101111 (2) = 7AF(16) ;
c). 11010.001010011(2) = 32.123 (8) .
(iii). Trecerea unui număr din baza b în baza h prin intermediul unei baze
intermediare g
Metoda se reduce la cele două anterioare de la baza b se poate trece la baza g,
calculele făcându-se în noua bază (deci primul procedeu), iar de la baza g la baza h
calculele se execută în baza veche (al doilea procedeu).
De obicei baza intermediară g este 10.
8
Exemplu:
7635(8) = 2391 (12)
7635(8) = 783 + 682 + 381 + 5 = 7512 + 664 + 24 + 5 =
= 3584 + 384 + 29 = 3997 (10) = 2391 (12) .
Observaţie:
Deoarece în sistemele de calcul nu se pot introduce decât numere cu un număr
finit de cifre (în special în partea fracţionară), numerele reale vor fi întotdeauna
aproximate prin numere raţionale.
Prin această metodă se realizează conversia unui număr N din baza b în baza h
utilizând aritmetica în baza h.
Conversia părţii întregi a numărului se obţine prin împărţiri succesive la baza h,
iar conversia părţii fracţionare prin înmulţiri succesive în baza h.
Considerăm numărul N din baza b care se poate scrie:
N(b) = [N] (b) + {N}(b).
Dar
[N] (b) = anhn + ... + a 1h1 + a0h0 ,
cifrele ai (i = 0,1,…,n) fiind deocamdată necunoscute, dar se pot determina prin
împărţirea succesivă a lui [N] (b) la h conform procedeului următor:
[ N ](b ) a
a n h n 1 ... a 1 h 0 0 a 0
h h
[ N 1 ](b ) a
a n h n 2 ... a 2 h 0 1 a 1
h h
......................................................................………….
[ N k ](b ) ak
a n h n k 1 ... a k 1 h 0
ak .
h h
Procesul de împărţire se încheie în momentul în care [N] (b) < h . Se obţine în
final:
[Nn] (b) = an , 0 < a n < h .
Observaţie:
Cifra cea mai puţin mai semnificativă a numărului [N] (h) este a0, iar cifra cea mai
semnificativă a numărului este an .
Partea fracţionara a numărului N(b) se va scrie în baza h astfel:
{N }(b ) a1h 1 a 2 h 2 ... a m h m .
Cifrele a-i (i = 1,2,…,m) se pot determina prin înmulţiri succesive ale părţii
fracţionare cu baza h conform următorului procedeu:
{N }( b ) * h a 1 a 2 h 1 ... a m h m 1 a 1
{ N1 }( b )
{N 1 }( b ) * h a 2 a 3 h ... a m h m 2 a 2
1
{ N 2 }( b )
..............................................................................................................
9
{N k 1 }( b ) * h a k a k 1 h 1 ... a m h m k a k
{ N k }( b )
Cifra a-1 reprezintă cifra cea mai semnificativă a numărului {N}(h), iar cifra a-m
reprezintă cifra cea mai puţin semnificativă.
1.6.3. Exemple
10
2. 34562(7)= 21240(8)
34562(7)=11(7) 3142(7)+0(7)
3142(7) =11(7) 255(7)+4(7)
255(7) =11(7) 23(7)+2(7)
23(7) =11(7) 2(7)+1(7)
2(7) =11(7) 0(7)+2(7)
3. 34562(7) = 3 74 + 4 73 + 5 72 + 6 7 + 2 =
= 3 2401 + 4 343 + 5 49 + 6 7 + 2 =
= 7203 + 1372 + 245 + 42 + 2 = 8864 (10)
4. 34562(7) = 10001010100000(2)
II. Să se transforme numărul 234.128 (10) în baza 8.
234 = 298 + 2 2 0.128 8 = 1.024 1
29 = 38 + 5 5 0.024 8 = 0.192 0
3 = 08 + 3 3 0.192 8 = 1.536 1
0.193
Pentru a obţine o conversie mai exactă, procesul de înmulţire mai poate continua.
Dar, cu trei zecimale exacte, putem scrie că 234.128 (10) = 352.101 (8).
III. Să se transforme numărul 175.1285 (10) în baza 4.
175 = 434 + 3 3 0.12854 = 0.5140 0
43 = 104 + 3 3 0.51404 = 2.0560 2
10 = 24 + 2 2 0.05604 = 0.2240 0
2 = 04 + 2 2 0.22404 = 0.8960 0
0.89604 = 3.5840 3
0.58404 = 2.3360 2
Pentru a obţine o conversie mai exactă, procesul de înmulţire mai poate
continua. Cu şase zecimale exacte putem scrie că 175.1285 (10) = 2233.020032 (4).
1.7. Rezumat
CAPITOLUL 2
12
Exemple:
i. Un bec având două stări stabile distincte (aprins şi stins) poate realiza
codificarea unui sistem informaţional cu două stări distincte.
ii. Un zar cu 6 stări stabile distincte poate realiza codificarea unui sistem
informaţional cu 6 stări distincte.
Inconvenientul metodei directe constă în faptul că este foarte greu sau chiar
imposibil să se realizeze un mecanism cu un număr suficient de mare de stări stabile
distincte.
Această insuficienţă a metodei directe o elimină folosirea limbajelor de
codificare.
Un limbaj de codificare L este definit printr-un triplet:
L ≡ {alfabet, structură morfologică, atribuire semantică}.
Alfabetul este o mulţime cel mult numărabilă şi nevidă de elemente distincte
numite litere, caractere sau simboluri.
Exemple:
i. A2 = {0,1};
ii. A10 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
iii. An = {A, B, C, …, X, Y, Z}.
13
c1 ( j ) , dacă 1 j l (c1 )
c1c 2 ( j ) .
c 2 ( j l (c1 )) , dacă l (c1 ) 1 j l (c1 ) l (c 2 )
Definiţia 3. Operaţia de substituţie este aplicaţia:
s : A* A* A*
care asociază perechii de cuvinte (c1, c2) A* A* cuvântul c3 = s(c1, c2) A* obţinut
prin substituţia unui subcuvânt al lui c2 prin c1.
Exemplu:
c1 = αβαβ , c2 = αβγαβ , c3 = αβαβαβαβ = (αβ)4 ;
cuvântul c3 s-a obţinut prin substituţia γ c1 .
Definiţia 4. Numărul de caractere ale cuvintelor unui limbaj defineşte formatul
limbajului.
Deosebim următoarele tipuri de limbaje:
- cu format definit;
- cu format liber (variat).
Limbajul cu format liber nu are restricţii de format, în timp ce limbajul cu format
definit are proprietatea că l(c) = f (constant), () c L A*.
Definiţia 5. Atribuirea semantică este operaţia care realizează corespondenţa
bijectivă între mulţimea elementelor sistemului informaţional şi o submulţime a
mulţimii elementelor limbajului (eventual întreaga mulţime a elementelor
limbajului).
Observaţie:
Mulţimea A+ înzestrată cu operaţia de concatenare “ ” : A + A +
A+, definită prin (c1,c2) c1c2 este un semigrup, ce poartă numele de
semigrup liber peste alfabetul A; mulţimea A joacă rol de sistem de
generatori pentru semigrupul (A+, ), identificând elementele sale cu cuvintele
de lungime 1, deoarece orice cuvânt cA+ se exprimă în mod unic ca
juxtapunerea a l(c) cuvinte de lungime 1:
c = c1c2....c l(c) , c j = c(j) , 1 j l(c).
Definiţia 6. Monoidul (A*,,) în care operaţia “” coincide pe A+ cu operaţia de
concatenare (juxtapunere) şi în plus:
c = c = c , c A*,
se numeşte monoid liber peste alfabetul A.
Definiţia 7. Un limbaj pe alfabetul A este o parte L a monoidului liber A*, deci L
A*, sau altfel spus, L (A *).
Definiţia 8. Puterea lexicografică a unui limbaj este definită prin numărul cuvintelor
distincte ce se pot forma un acel limbaj, deci card (L).
14
Definiţia 10. Fie L1, L2 (A*). Se numeşte produs al limbajelor L1 şi L2 limbajul
notat L1L2 şi definit astfel:
L1L2 = {c | c = c1c2, c1 L1, c2 L2}.
În mod echivalent, limbajul L1L2 se mai numeşte concatenarea limbajelor L1 şi
L2.
Prin definiţie avem:
L = L = , L P (A*),
deci limbajul vid, , este element nul faţă de produs.
Limbajul {}, constituit numai din cuvântul nul, este element neutru faţă de
produs, deoarece:
{}L = L{} = L, L P (A*).
Observaţie:
Orice aplicaţie injectivă : S1 L P (A*) este un cod, ce realizează
codificarea elementelor sistemului informaţional S1 prin cuvinte (din L) peste
alfabetul A*. Limbajul L este numit limbaj de codificare.
Uneori, prin abuz de limbaj, limbajul de codificare se numeşte, mai scurt, cod.
Definiţia 11. Puterea a n-a a unui limbaj L se defineşte în mod recurent astfel:
L0 = {λ};
L1 = L;
Ln+1 = L nL, () nN, n 1.
Observaţie:
Produsul este distributiv faţă de reuniune adică avem:
a. L1(L2 L3) = L 1L2 L1L3 ,
b. (L1 L2)L3 = L 1L3 L2L3 ,
oricare ar fi L1, L 2, L 3 P(A*).
Definiţia 12. Închiderea prin produs sau iteratul limbajului L este limbajul:
L* = {Ln / n 0}.
Închiderea restrânsă a limbajului L este limbajul:
L+ = {Ln / n 1}.
Observaţie:
Orice gramatică de tipul 3 este de tipul 2, orice gramatică de tipul 2 este de
tipul 1, iar orice gramatică de tipul 1 este de tipul 0. Aceste relaţii de
incluziune sunt adevărate şi pentru familiile de limbaje de tipul 3, 2, 1. 0, deci
L3 L 2 L 1 L 0,
unde am notat prin Li familia limbajelor de tipul i, i = 0, 1, 2, 3.
Teorema 1. Fiecare din familiile Li (i = 0, 1, 2, 3) conţine toate limbajele finite.
Teorema 2. Fiecare din familiile Li (i = 0, 1, 2, 3) este închisă faţă de operaţia de
reuniune.
Teorema 3. Familiile L1, L2, L3 sunt închise faţă de produs.
17
Un cod definit de o aplicaţie injectivă : S1 L ({0,1}*), capabil să
codifice elementele sistemului informaţional S1, trebuie să satisfacă cerinţa ca puterea
lexicografică a limbajului L să fie mai mare sau egală cu card(S1).
Aplicaţia de mai sus în cazul în care limbajul L are formatul definit şi anume
f = 4, realizează codificarea unui sistem informaţional cu 16 stări distincte; este aşa
numitul cod DCB (Decimal Coded Binary), (N(10)) = N (2) definit astfel:
0(10) 0000 (2)
1(10) 0001 (2)
2(10) 0010 (2)
3(10) 0011 (2)
......................................
15(10) 1111(2)
4. Codul Gray (binar reflectat) este tot o aplicaţie injectivă (N(10)) {0,1}*,
definită cu ajutorul limbajului de codificare binar de format definit (f = 4), deci capabilă
să codifice un sistem informaţional cu 16 stări distincte.
Corespondenţa pe care o realizează codul Gray:
N (10 ) N ( 2 )
este prezentată în detaliu în continuare:
0(10) 0000 (2)
1(10) 0001 (2)
2(10) 0011 (2)
3(10) 0010 (2)
4(10) 0110 (2)
5(10) 0111 (2)
6(10) 0101 (2)
7(10) 0100 (2)
8(10) 1100 (2)
9(10) 1101 (2)
10(10) 1111 (2)
11(10) 1110 (2)
12(10) 1010 (2)
13(10) 1011 (2)
14(10) 1001 (2)
15(10) 1000 (2)
Remarcăm faptul că două combinaţii de cod consecutive sunt adiacente (adică
diferă printr-o singură poziţie a combinaţiilor de cod, aceeaşi în ambele combinaţii); de
asemenea prima combinaţie de cod este adiacentă cu ultima ceea ce face ca succesiunea
combinaţiilor de cod să fie circulară.
18
5. Codul EBCDIC (Extended Binary Coded Decimal Interchange Code) este
realizat de limbajul de codificare binar de format definit (f = 8), deci permite
codificarea elementelor unui sistem informaţional cu 28 elemente si implicit este capabil
sa codifice oricare din cele 64 caractere ale limbajului natural:
A 11000001
B 11000010
……………………
1 11110001
2 11110010
……………………
9 11111001 .
Codurile sunt aplicaţii cod : (-1,1) {-0} R (în cazul codului direct şi al
codului invers ) şi aplicaţie cod : (-1,1) R (în cazul codului complementar). Simbolul
-0 este introdus pentru ca aplicaţiile respective să fie uniforme. Sunt utilizate codurile
direct, complementar şi invers.
Definiţia 19. Codul direct este aplicaţia, notată [ ] dir, şi definită astfel:
[ ] dir : (-1,1) {-0} R,
unde:
a , dacă a 0
[a] dir = b 1 , dacă a 0, b N, b > 1.
b - 1 - a , dacă a 0
Observaţii:
i. Codul direct realizează corespondenţele:
[]
(0, 1) dir
(0, 1)
[]
(1, 0) dir
(b 1, b) .
ii. Aplicaţia [ ] dir este injectivă. Astfel, dat fiind [a] dir , există un singur a, al
cărui cod direct este [a] dir .
Teorema 5. Dacă aR , bN , b>1 atunci:
0.a1a2 ...an , dacă a(b ) 0.a1a2 ...an
[a]dir = .
(b 1).a1a2 ...an , dacă a(b ) 0.a1a2 ...an
Observaţie: Codul direct poate fi extins pentru numere naturale şi mai departe
pentru numere raţionale. Codul direct al unui număr N este (în cazul b = 2 şi
lungimea registrului n + 1) dat de relaţia:
n 1
[N]dir= a n 2 a i 2 i ,
n
i 0
19
unde a n reprezintă bitul de semn şi ia valoarea 0 dacă N 0 şi valoarea 1 dacă N
0, iar a i ( 0 i n-1) sunt biţii numărului N, deci are reprezentarea:
unde:
0, dacă N 0
S=
1, dacă N 0
Codul direct al unui număr raţional N este:
n 1
n
[N]dir= a n 2 a 2
i m
i
i
Exemple:
Dacă lungimea registrului este n = 5, atunci:
a. [13]dir = 01101;
b. [-13]dir = 11101;
c. [-0,6875]dir = 11011;
0.68752 = 1.375 a –1 = 1,
0.3752 = 0.75 a –2 = 0,
0.752 = 1.5 a –3 = 1,
0.52 = 1.0 a –4 = 1.
Acest mod de reprezentare prezintă avantajul de a fi foarte asemănător scrierii
obişnuite, dar are dezavantaje din punctul de vedere al realizării calculelor; realizarea
unei operaţii de adunare sau scădere a două numere nu depinde numai de funcţia de
executat ci şi de semnul numerelor respective.
Definiţia 20. Codul complementar este aplicaţia notată [ ]compl, definită astfel:
[ ]compl : (-1,1) R
unde:
a , daca 0 a 1
[a]compl = , bN* , b >1
b a , daca 1 a 0
Observaţii.
i. Codul complementar realizează corespondenţele următoare:
[]
compl
[0, 1) [0, 1)
[]
compl
( 1, 0) (b 1, b)
ii. Aplicaţia [ ] compl este injectivă.
Teorema 6. Dacă aR , b N * , b>1, atunci au loc relaţiile:
0.a1a2 ...an , dacă a(b) 0.a1a2 ...an
[a]compl
(b 1).b1b2 ...bn , dacă a(b) 0.a1a2 ...an , i {1,...,n}, ai 0
20
unde:
0.b1b2…bn = 1 – 0.a 1a2…an .
Observaţie:
Codul complementar al unui număr algebric N este, în cazul b = 2, dat de
relaţia:
n 1
n
0 2 ai 2 i , dacă N 0
i m
[N] compl = n 1
,
1 2 n i m
ai 2 2 , dacă N 0
i m
Exemple:
În cazul registrului de lungime de lungime n = 5 avem:
a. [13]compl = 01101;
b. [-13]compl = 10011,
deoarece –13= -1101(2); se trece la cod complementar 1101 0011, deci se
obţine rezultatul menţionat.
Definiţia 21. Codul invers este aplicaţia notată [ ]inv , definită astfel:
[ ]inv : [-1+b-n, 1){-0} R
unde
a , dacă 0 a 1
n
[a]inv = b b , dacă a 0 .
b b n a , dacă 1 b n a 0
b N, b>1 ,n N.
Observaţii.
i. Codul invers realizează corespondenţele:
[]
(0, 1) inv
(0, 1)
[]
[1 b n , 0) inv
[b 1, b b n )
i. Aplicaţia [ ] inv este injectivă.
Exemple:
În cazul registrului de lungime n = 5 avem:
21
a. [13] inv = 01101;
b. [-13]inv = 10010,
deoarece –13= -1101(2) ; trecem numărul în cod invers 11010010, deci
[-13]inv = 10010.
Observaţie:
Cele trei coduri coincid în cazul numerelor pozitive şi diferă în cazul numerelor
negative.
22
2.7. Rezumat
23
al sumei, se prezintă algoritmi pentru adunare şi scădere în cod direct, complementar şi
invers, înmulţirea în cod complementar (metoda Roberston, metoda Booth).
CAPITOLUL 3
REPREZENTAREA INFORMAŢIEI ÎN
MEMORIA SISTEMELOR DE CALCUL
Sistemul de numeraţie utilizat în sistemele de calcul este sistemul binar. În
funcţie de soluţia aleasă pentru a indica poziţia virgulei şi semnul există mai multe
moduri de reprezentare a datelor numerice.
Poziţia fixă sau variabilă a virgulei determină reprezentarea numită în virgulă
fixă, respectiv în virgulă mobilă (flotantă).
a)
1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0
b)
1 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0
c)
1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1
24
Reprezentarea numărului întreg N se reduce la reprezentarea numărului
subunitar N/215, în cazul lungimii registrului de 2 octeţi, o poziţie fiind rezervată pentru
semn, utilizându-se oricare din codurile menţionate.
Este de remarcat faptul că se poate astfel reprezenta orice număr întreg N care
satisface condiţiile:
-215 N <215-1.
Exemple:
i. Numărul N = 13 (10) = 1101 (2) este reprezentat astfel:
0 1 2 3 15
0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1
deoarece 11012-15=0.000000000001101.
ii. Numărul N = -13(10) = 1101 (2) este reprezentat după cum urmează:
a. în cod direct
1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1
b. în cod invers
1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0
c. în cod complementar
1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1
0 1 6 7 8 31
SE EXPONENT SM MANTISA
Exemple:
i. N = - 0.101127 ;
0 1 6 7 8 31
0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25
ii. N = 0.110112-4 ;
0 1 6 7 8 31
1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 7 8 31
S C M
| Caracteristica (biţii 1-7) Mantisa (biţii 8-31)
S – Semnul mantisei (bitul 0)
0 1 7 8 63
S C M
| Caracteristica (biţii 1-7) Mantisa (biţii 8 -63)
S – Semnul mantisei (bitul 0)
i. N = 1234;
1234(10) = 4D2(16) ;
4D2(16) = 0.4D2163 ;
E = 3 => C = 67 => C=1000011 (2) ;
0.4D2(16) = 0.010011010010 (2)
0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 … 0 0
0 1 7 8 31
ii. N = -1234;
1 0 1 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 1 0 … 0 0
0 1 7 8 31
26
iii. N = 0.00123456;
E = -2; C = 62 = 111110 (2)
0.50E87A(16) = 0.010100001110100001111010 (2)
0 0 1 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0
0 1 7 8 31
iv. N = - 0.00123456 ;
1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 0
0 1 7 8 31
Observaţie:
Reprezentarea informaţiilor numerice (alfaumerice) în sistemele de calcul se
realizează cu ajutorul codului ASCII extins (American Standard Cod for
Information Interchange), un caracter fiind reprezentat pe un octet.
27
Date fiind numerele:
N1 = (S 1)(0.M 1)(16)16C1 , N2 = (S 2)(0.M 2)(16)16C2 ,
Produsul lor este:
P = (S)(0.M) (16)16C,
unde:
S = S 1 S2 , “ “ este suma modulo 2;
(0.M)(16) = (0.M 1)(16) (0.M 2)(16) ;
C = C 1 + C 2 – 64.
Rezultatul obţinut nu este normalizat; este necesară normalizarea acestuia, cu
modificarea corespunzătoare a caracteristicii.
Dacă cele două numere sunt:
N1 = (S 1)(0.M 1)(16) 16C1 (deîmpărţitul)
şi
N2 = (S 2)(0.M 2)(16) 16C2 (împărţitorul),
atunci câtul este:
N = N 1 N2 = (S)(0.M) (16) 16C,
unde:
S = S 1 S2 , “ “ este suma modulo 2;
(0.M)(16) = (0.M 1)(16) (0.M 2)(16) ;
C = C 1 - C2 .
Normalizarea câtului se realizează în acelaşi mod cu normalizarea rezultatului
oricărei operaţii aritmetice a două numere reprezentate în virgulă mobilă.
31 30 29 28 27 26 25 24 23 22 3 2 1 0
27 26 25 24 23 2 2
2 1
2 0
2 -1
… 2-20 2-21 2-22 2-23
S
Exponent(E) Fracţia(F)
28
Partea fracţionară (F) este un întreg fără semn, ocupă 23 biţi; cifra cea mai
semnificativă a părţii fracţionare este pe poziţia bitului 22, iar cifra cea mai puţin
semnificativă a părţii fracţionare este dată de bitul 0.
Valoarea numărului memorat în reprezentarea de mai sus este (-1)S2E-127 (1.F).
Un număr în virgulă mobilă este interpretat folosind următoarele convenţii:
1. Dacă E = 0 şi F = 0 , valoarea este ( -1)S (0), deci (+0) sau (-0);
2. Dacă E = 0 şi F 0, valoarea este un număr nenormalizat; un număr
nenormalizat reprezintă o entitate de ordin de mărime mai mic decât 2-126 şi mai mare
decât 0, dacă S = 0.
3. Dacă 0 < E < 255, valoarea este egală cu (-1)S2E-127(1.F) şi reprezintă un
număr normalizat; reprezintă o cantitate de mărime mai mare sau egală cu 2 -126 şi mai
mică decât 2128, dacă S = 0.
Exemple:
31 30 23 22 17 16 1 0
0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 … 0 0 0
S
E F
31 30 23 22 17 16
1 1 0 0 0 0 0 1 0 0 1 1 0 1 1 0 … 0 0 0
S
E F
29
Valoarea (NAN) nu reprezintă o valoare numerică şi este interpretat ca un
simbol sau ca un semnal. Este folosit pentru a indica operaţii invalide (de exemplu
apariţia unei situaţii 00.0 generează un NAN), sau ca operand-input.
Există două tipuri de NAN şi anume:
- NAN semnalizator cu reprezentarea:
31 30 23 22 17 16 1 0
x 1 1 1 1 1 1 1 1 1 x x x x x x … x x x
S
31 30 23 22 17 16 1 0
x 1 1 1 1 1 1 1 1 0 x x x x x x … x x x
S
în care cel puţin unul din ultimii 22 biţi are valoarea 1. x - marchează faptul că poate fi
utilizată orice cifră dintre 0 şi 1.
6. Formatul întreg (model IEEE) este permis. Numerele întregi sunt reprezentate
pe 32 biţi, ca în figura următoare:
x 31 30 29 28 27 8 7 6 5 4 3 2 1 0
231 230 229 228 227 … 28 27 26 25 24 23 22 21 20
Valoarea maximă a unui întreg ce poate fi reprezentat este 2 31–1, iar valoarea
minimă -231 (luând complementul faţă de 2).
3.4.2.6. Rotunjirea
30
1. Rotunjirea la cel mai apropiat; rezultatul exact este rotunjit prin reprezentarea cea
mai apropiată de rezultatul exact, care se poate încadra in format.
Exemplul 1. Valoarea
220+2-4+2-5 = 1.0000000000000000000000011 220
23 de ori
2. Rotunjirea spre - ; se realizează prin valoarea cea mai mare, mai mică sau egală
cu rezultatul exact, care se încadrează în formatul considerat. Rotunjirea este realizată
atât pentru virgulă mobilă cât şi pentru format întreg.
Exemplul 1. Valoarea
220+2-4+2-5 = 1.0000000000000000000000011 220
23 de ori
3. Rotunjirea spre + ; se realizează prin valoarea cea mai mică, mai mare sau egală
cu valoarea exactă, care se încadrează în formatul considerat. Rotunjirea este realizată
atât pentru virgulă mobilă cât şi pentru format întreg.
Exemplul 1. Valoarea 220+2-4+2-5 se rotunjeşte prin următoarea valoare mai
mare în virgulă mobilă, deci prin:
220 +2-3 = 1.00000000000000000000001 220.
22 de ori
3.4.2.7. Exemple
Să se reprezinte numerele:
a. N1 = 78656;
b. N2 = -78656;
c. N3 = 0.00213456;
d. N4 = -0.00213456;
în virgulă mobilă, precizie simplă, cu mantisa reprezentată în cod complementar iar
caracteristica în cod invers.
e. Să se reprezinte aceleaşi numere în standardul IEEE P754.
S C M
0 1 7 8 31
31
N = (SM)M (16) 16(SE)E; C = E+64;
a. 78756(10) = 13340 (16)
N1 = 0.1334 165
E = 5 implică C = 5 + 64 = 69
C = 1000101 (2)
M = 0.0001001100110100 (2)
0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 … 0
S 7 8 31
b.
1 1 0 0 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 … 0
S 7 8 31
0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 ... 0
S 1 7 8 9 31
d.
1 1 0 0 0 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 0 … 0
S 7 8 9 31
0 1 8 9 31
S E F
0 1 8 9 31
0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 … 0
.
.
32
ii. - 78656(10) = - 13340(16);
0 1 8 9 31
1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 0 … 0
0 .
iii. 0.00213456(10) = 0.008BE3 (16) = 0.000000001000101111100011 (2); .
0.00213456(10) = 1.000101111100011 2-9(2);
S = 0;
E – 127 = -9;
E = 118; E = 01110110 (2);
F = 0001011111000110…0;
0 1 8 9 31
0 0 1 1 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 0 1 1 … 0
1 0 0 0 1 0 1 1 0 0 . . ..
iv.
1 - 0.002134561(10) = - 0.000000001000101111100011 (2);
0 1 8 9 31
1 0 1 1 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 0 1 1 … 0
0 1 0 0 0 1 0 1 1 0 0 . .
1 1
3.5. Rezumat
0 1 7 8 31
S C M
| Caracteristica (biţii 1-7) Mantisa (biţii 8 -31)
S – Semnul mantisei (bitul 0)
0 1 7 8 63
S C M
| Caracteristica (biţii 1-7) Mantisa (biţii 8 -63)
S – Semnul mantisei (bitul 0)
34
PARTEA A DOUA
CAPITOLUL II
Observaţie: Din proprietăţile (i) (ii) şi (iii) şi din definiţia 1 rezultă că L este o mulţime
parţial ordonată în raport cu relaţia ““ iar din (iv) şi (v) rezultă că pentru oricare două
elemente există un cel mai mic majorant comun şi un cel mai mare minorant comun.
Relativ la definiţia anterioară considerăm operatorii :
“”: L LL, x y: = p, x, y L
şi
“”: L LL, x y: = s, x, y L.
Propoziţia 1. Au loc următoarele proprietăţi x, y, z L:
i. x x = x, xx=x (idempotenţa);
ii. x y = y x, xy=yx (comutativitatea);
iii. x (y z) = (x y) z,
x (y z) = (x y) z), (asociativitatea);
iv) x (x y) = x, x (x y) = x (absorbţia).
35
i. x (y z) = (x y) (x z) x, y, z L;
ii. x (y z) = (x y) (x z) x, y, z L.
Definiţia 4. O mulţime nevidă L în care s-a definit o relaţie binară, ale cărei elemente
satisfac proprietăţile (i), (ii) şi (iii) şi una din proprietăţile (iv) sau (v) din definiţia 1 se
numeşte semilatice.
Exemplu: Mulţimea numerelor naturale N înzestrată cu operaţiile "" şi "" definite de:
n m = max {n, m} n, m N;
n m = min {n, m} n, m N,
este o latice.
Demonstraţie:
i. n m = max{n, m} = max{m, n}= m n,
ceea ce dovedeşte comutativitatea;
Definiţia 5. Într-o latice L care admite prim şi ultim element, elementul x’ L se numeşte
complement al lui x L dacă şi numai dacă x’ x = 0 şi x’ x =1.
36
Propoziţia 4. Într-o latice distributivă dacă un element are un complement atunci acest
complement este unic.
Propoziţia 5. Într-o algebră booleană (A, , , 0,1, ), unde “”, “” sunt operaţiile
ce definesc laticea, 0 şi 1 sunt primul respectiv ultimul element al laticei iar operatorul
: A A pune în corespondenţa lui x A complementul său x A, sunt valabile
următoarele afirmaţii:
i. a b = b a, a b = b a, a, b A;
ii. a (b c) = (a b) c, a (b c) = (a b) c, a, b, c A;
iii. a (a b) = a, a (a b) = a, a, b A;
iv. a (b c) = (a b) (a c),
a (b c) = (a b) (a c), a, b, c A;
v. (a a) b = b, (a a) b = b, a, b A.
Observaţie:
Se poate defini algebra booleană independent de noţiunea de latice, ca fiind o
mulţime nevidă A înzestrată cu două operaţii binare “ “, ““, şi o operaţie unară “ “
ce satisfac relaţiile din propoziţia 5.
Propoziţia 6. Într-o algebră booleană au loc:
i. a a =a, a a =a, aA (idempotenţa);
ii. a b =a a b =b.
Demonstraţie:
Rezultă imediat din propoziţia 1 şi propoziţia 2 dacă ţinem cont că algebra
booleană a fost definită ca latice.
În mod echivalent avem:
i. a = a (a b) = (a a) (a b) = [a (a b)] [a (a b)] = a a;
a = a (a b) = (a a) (a b) = [a (a b)] [a (a b)] = a a;
ii. () a b = (a b) b = b;
() a b = a (a b) = a;
Definiţia 7. Dacă a, b A, A algebră booleană, spunem că a este mai mic decât b (sau b
este mai mare decât a, sau a este un minorant al lui b, sau b este un majorant al lui a,
sau a este un subelement al lui b, sau a este conţinut în b, sau b conţine a) şi vom nota
a b, dacă a b = a, sau, echivalent a b = b. Relaţia ““ se numeşte relaţie de
incluziune booleană.
Observaţie:
Relaţia ““ este o relaţie de ordine parţială pe A deoarece este relaţia de ordine
parţială din definiţia laticei care este algebra booleana A. Din aceleaşi motive elementul a
37
b (respectiv a b) este cel mai mic majorant comun (respectiv cel mai mare minorant
comun) al elementelor a si b.
n
Propoziţia 7. Dacă a i i 1,n A şi b a i , atunci b este cel mai mic element care
i 1
conţine toate elementele a i i 1,n . Aşadar:
i. ai b, i 1, n ;
ii. ai f, i 1, n b f.
n
Dacă c a atunci c este cel mai mare element care este conţinut în toate
i 1 i
elementele a i i 1,n . Aşadar:
i’. c ai i 1, n ;
ii’. g ai i 1, n g c.
Definiţia 9. Algebra booleană A se numeşte nedegenerată dacă conţine cel puţin două
elemente.
Observaţie:
O condiţie necesară şi suficientă ca o algebră booleană A să fie degenerată este ca
1 = 0.
Observaţie:
Din propoziţia precedentă se obţine
a b =a b , a b = a b,
prin urmare intersecţia poate fi definită cu ajutorul reuniunii şi complementarei şi analog
reuniunea poate fi definită cu ajutorul intersecţiei şi complementarei.
38
Definiţia 10. Pentru două elemente a, b A diferenţa lor este dată de relaţia
a - b: = a b.
Observaţie:
Din definiţia de mai sus rezultă că 1- a = a, a A.
Definiţia 12. Se numeşte inel o mulţime nevidă I înzestrată cu două operaţii (legi de
compoziţie) “+” şi ““ care verifică proprietăţile:
i. a + b = b + a, a, b I , (comutativitatea);
ii. a + (b + c) = (a + b) + c, a, b, c I, (asociativitatea);
iii. 0 I: a + 0 = 0 + a = a, a I, (existenţa elementului neutru);
iv. a I, -a I: a + (-a) = (-a) + a = 0, (existenţa elementului simetric);
v. a (b + c) = a b + a c, a, b, c I,
(a + b) c = a c + b c, a, b, c I,
(distributivităţile la dreapta şi la stânga ale operaţiei ““ faţă de “+”);
vi. a (b c)=(a b) c, a, b, c I, (asociativitatea).
Definiţia 13.
i. Un inel (I, +, ) cu proprietatea ca 1 I: a 1 = 1 a = a, a I se
numeşte inel cu element unitate.
ii. Un inel (I, +, ) cu proprietatea a b = b a, a, b I se numeşte inel
comutativ.
Definiţia 14.
Un inel (I, +, ) cu element unitate şi cu proprietatea că a a = a, a I se
numeşte inel boolean.
Propoziţia 11. În orice inel boolean (I, +, ) au loc următoarele proprietăţi:
i. a + a = 0, a I;
ii. a + b = 0 a = b, a, b I;
iii. a b = b a, a, b I;
39
iii. a 0 = 0 a = 0, a I.
Propoziţia 12. a + b = c b = a + c a = b + c, a, b, c I.
Teorema 2. Orice algebră booleană A este un inel boolean cu următoarele definiţii ale
operaţiilor de adunare şi înmulţire:
a + b: = (a-b) (b-a) (= (a b) (b a));
a b: = a b.
Reciproc, orice inel boolean I este o algebră booleană cu următoarele definiţii ale
operaţiilor de reuniune, intersecţie şi complementare:
a b = a + b + a b;
a b = a b;
a = 1 + a.
Mai mult, în ambele cazuri elementul neutru faţă de “+” şi elementul neutru faţă
de “ “ din inelul boolean coincid cu elementul zero respectiv elementul unitate din
algebra booleană.
Propoziţia 13. ( (X), , , ) este o algebra booleană în care primul element este
iar ultimul element este X, mulţimea totală.
40
formează o algebră booleană în care primul element este 0, iar ultimul element este 1.
Verificarea condiţiilor ce trebuie să fie îndeplinite pentru ca (B(2), , , , 0, 1) să aibă
structură de algebră booleană o facem prin epuizarea tuturor valorilor ce le pot avea
variabilele.
0 a b 1 0 a b 1 x x
0 0 a b 1 0 0 0 0 0 0 1
a a a 1 1 a 0 a 0 a a b
b b 1 b 1 b 0 0 b b b a
1 1 1 1 1 1 0 a b 1 1 0
Tabelul 6. Tabelul 7. Tabelul 8.
0 1 0 1
0 0 1 0 0 0
1 1 0 1 0 1
Tabelul 9. Tabelul 10.
0 1 0 1 x x
0 0 1 0 0 0 0 1
41
1 1 1 1 0 0 1 0
Tabelul 11. Tabelul 12. Tabelul 13.
Din structura acestor tabele rezultă că algebra booleană cu care este echivalent
inelul claselor de resturi modulo 2 este chiar algebra booleană binară (B(2), , , ).
2.6 Rezumat
42
CAPITOLUL III
Exemplu:
2
Pentru cazul n = 2 avem 2 2 =16 funcţii booleene de două variabile booleene fi:
B(2)B(2) B(2), i 0,5 .
43
0 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1
Tabelul 2 (continuare).
Relativ la aceste funcţii, definite mai sus prin valorile pe care le iau pe mulţimea
valorilor posibile ale variabilelor lor, se remarcă următoarele:
f0(x, y) 0, funcţia identic 0 (contradicţie);
f1(x, y) = x y, funcţia “şi”;
f2(x, y) = x y;
f6(x, y) = x z , funcţia suma modulo 2 (sau exclusiv);
f7(x, y) = x y, funcţia sau (suma logică);
f8(x, y) = x y = x y , funcţia “nici” a lui Pierce;
f9(x, y) = x y, funcţia “echivalenţă”;
f13(x, y) = x y, funcţia “implicaţie”;
f14(x, y) = xy = x y , funcţia “numai” a lui Schäffer;
f15(x, y) 1, funcţia lege logică (tautologie).
Teorema 1. Orice funcţie booleană f: (B(2))n B(2) poate fi pusă sub forma
f ( x ,..., x ) = (f ( ,..., ) x 1 x 2 ... x n ) (1)
1 n 1 n
( , ,..., )( B (2))n
1 2 n
sau
f ( x ,..., x ) = (f ( ,..., ) x 1 x 2 ... x n ) (2)
1 n 1 n 1 2 n
( , ,..., )( B (2))n
1 2 n
unde disjuncţia din prima formulă şi conjuncţia din cea de-a doua se iau după toate n-
uplele (1, 2,..., n) (B(2))n, iar pentru orice x B(2) am notat x0 =x şi x1 = x.
Observaţie:
Formula (1) se numeşte prima formulă de interpolare a lui Lagrange, iar
membrul drept se numeşte forma canonică disjunctivă a funcţiei booleene f(x1, x2,...,
xn). Formula (1) este echivalentă cu:
f ( x ,..., x ) = ( x 1 x 2 ... x n ) (1’).
1 n 1 2 n
( , ,..., )( B (2))n
1 2 n
Formula (2) se numeşte a doua formulă de interpolare Lagrange, iar membrul
ei drept se numeşte forma canonică conjunctivă a funcţiei booleene f(x1, x2, . . . x n).
Formula (2) se mai poate scrie:
44
f ( x ,..., x ) = ( x 1 x 2 ... x n ) (2’).
1 n 1 1 n
( , ,..., )( B (2))n
1 2 n
Rezultă din (1’) şi (2’) că prima formulă fundamentală de reprezentare a funcţiilor
booleene (1) este utilă atunci când avem un număr mare de nerealizări (de zerouri) ale
funcţiei şi un număr mic de realizări, iar a doua formulă fundamentală de reprezentare (2)
este recomandată în caz contrar, deci atunci când avem un număr mic de nerealizări (de
zerouri) şi un număr mare de realizări (de valori 1) ale funcţiei.
Observaţie:
Justificarea denumirii de constituent al nulului rezidă în faptul că:
( x 1 x 2 ... x n ) = 0.
1 2 n
( , ,..., )( B (2))n
1 2 n
Justificarea denumirii de constituent al unităţii constă în relaţia:
( x 1 x 2 ... x n ) = 1.
1 2 n
( , ,..., )( B (2))n
1 2 n
Exemplu:
Pentru n = 3 avem 23 = 8 mintermi şi 8 maxtermi. Explicităm câţiva dintre
aceştia:
m m x yz, M M x y z,
0 (0 0 0) 0 (0 0 0)
m m x yz, M M x yz,
3 (0 11) 2 (0 1 0)
m m x yz, M M x yz,
6 (11 0) 5 (1 0 1)
m m x yz, M M x yz .
7 (111) 7 (111)
Regula de determinare a fost următoarea: indicele mintermului (0, 3, 6 respectiv
7) l-am transformat în baza 2. Toate numerele de la 0 la 7 se exprimă în baza 2 pe exact 3
poziţii şi ele epuizează toate combinaţiile posibile de 0 şi 1 pe care le pot lua variabilele
x, y, z. Prin urmare scrierea în baza 2 a indicelui fixează argumentul pentru care
minteremul ia valoarea 1. Expresia mintermului va fi atunci conjuncţia variabilelor cărora
în explicitare le corespunde valoarea 1 şi a negaţiilor variabilelor cărora în explicitare le
corespunde valoarea 0.
45
Analog, expresia maxtermului va fi disjuncţia variabilelor cărora prin explicitarea
indicelui în baza 2 le corespunde valoarea 0 şi a negaţiilor variabilelor cărora le
corespunde valoarea 1 în aceeaşi explicitare a indicelui.
Observaţie: Regula de mai sus este de fapt regula generală de determinare a expresiilor
minternilor şi respectiv maxtermilor de indice dat.
Propoziţia 1. Conjuncţia a doi mintermi distincţi este identic nulă iar disjuncţia a doi
maxtermi distincţi este identic 1.
46
Prin combinarea celor două categorii de metode rezultă aşa numitele metode
grafo-analitice.
3.4.1. Metode analitice (Quine McCluskey)
Observaţie:
Implicanţii primi sunt minimali în sensul că au un număr minim de variabile, fapt
pentru care au un rol important în problema simplificării funcţiilor booleene.
Definiţia 6. Doi implicanţi I1 şi I2 care diferă prin forma unei singure variabile se
numesc vecini (adică p x şi px sunt vecini, unde p este un produs de
variabile sau negaţii ale lor altele decât variabila x).
Definiţia 7.
Expresia (formula) unei funcţii booleene care este disjuncţia tuturor
implicanţilor săi primi se numeşte expresie (formulă) caracteristică.
Oricare altă expresie (formulă) care conţine numai implicanţi primi va fi
numită expresie (formulă) redusă, iar expresiile (formulele) care conţin
un număr minim de implicanţi primi se numesc expresii (formule)
minimale.
47
Simplificarea funcţiilor se realizează în două etape. În prima etapă se determină
expresia (formula) caracteristică; în cea de-a doua etapă se determină formulele minimale
pornind de la formula caracteristică. Pentru a distinge cele două etape prima se va numi
de simplificare iar cea de-a doua de minimizare.
Metoda Quine-McCluskey constă în efectuarea sistematică şi completă a
operaţiilor de compunere a vecinilor, adică a operaţiilor de forma: px p x p .
Fie m = {m1, m2,...,m m} mulţimea mintermilor ce intră în forma canonică
disjunctivă a funcţiei booleene f : (B(2))n B(2).
ai ai ai
Fiecărui minterm mi x1 1 x 2 2 ...x n n îi asociem vectorul
n
ai (ai1 , ai2 ,..., ain ) şi numărul qi ai j .
j 1
Fie A = {a1,a2,...,a m}, Q = {q1, q2, ... ,q m}; fie P = {p1, p2, ..., p r} mulţimea
numerelor distincte din Q.
Fiecărui număr pi P îi asociem o submulţime Ai A în felul următor:
a j A i q j = p i.
r
Se obţine astfel o partiţie a mulţimii A, A Ai deoarece evident
i 1
Ai Aj = () ij.
Fiecare clasă Ai care compune partiţia are proprietatea că vectorii ce-i aparţin au
exact pi componente diferite de 0.
Două clase Ai şi Ak pentru care pi p k 1 se numesc vecine.
Constituenţii unităţii (mintermii) vecini se găsesc atunci în clase vecine, prin
urmare, în cazul folosirii unei metode de căutare a vecinilor, căutarea se reduce la
căutarea în două clase vecine deoarece doi vecini p x şi px au vectorii asociaţi ce
diferă prin valoarea unei singure componente, în timp ce doi vectori din aceeaşi clasă
diferă printr-un număr par de componente, iar doi vectori din două clase nevecine diferă
printr-un număr mai mare sau egal cu 2 de componente.
In aceste condiţii algoritmul de simplificare este următorul:
i. Se aduce funcţia booleană la FCD şi se determină mulţimea
m = {m 1, m 2,...,m m};
ii. fiecărui minterm m i , i 1, n i se asociază vectorul ai , i 1, n ;
n
iii. se determină q i a ij , i 1, n ;
j 1
48
vii. dacă tabelul este ireductibil faţă de operaţia de compunere atunci
algoritmul se încheie, altfel se revine la pasul (v).
Observaţie:
i. Un implicant poate intra în compunere cu mai mulţi implicanţi vecini (atât din
clasa vecină superioara cât şi din clasa vecină inferioară).
ii. La transcrierea formulei caracteristice din tabelul ireductibil se ţine cont că
fiecărui vector din tabel îi corespunde un implicant prim care se determină
prin realizarea conjuncţiei variabilelor ce au componenta corespunzătoare 1 şi
a negaţiilor variabilelor ce au componenta corespunzătoare 0; variabilele
cărora le corespunde o liniuţă în vector lipsesc.
49
m
iv. Se construieşte funcţia F P1 , P2 , , Pk
S i şi se simplifică
k 1
obţinându-se mulţimea Q Q1 , Q2 , , Qs a implicanţilor săi primi;
v. fiecărui Qt Q t 1, s i se asociază submulţimea
mintermi m1 m2 ... mm
implicanţi primi
P1 ...
P2 ...
Pn
şi din el se vor alege pentru expresia redusă a funcţiei acei implicanţi primi care acoperă
(in tabel) toţi mintermi, deci întreaga funcţie.
50
x2 0 1
x1
0 f (0, 0) f (0, 1)
1 f (1, 0) f (1, 1)
x2 x3 00 01 10 11
x1
0 f (0, 0, 0) f (0, 0, 1) f (0, 1, 0) f (0, 1, 1)
1 f (1, 0, 0) f (1, 0, 1) f (1, 1, 0) f (1, 1, 1)
x3 x4 00 01 10 11
x1 x2
00 f (0, 0, 0, 0) f (0, 0, 0, 1) f (0, 0, 1, 0) f (0, 0, 1, 1)
01 f (0, 1, 0, 0) f (0, 1, 0, 1) f (0, 1, 1, 0) f (0, 1, 1, 1)
10 f (1, 0, 0, 0) f (1, 0, 0, 1) f (1, 0, 1, 0) f (1, 0, 1, 1)
11 f (1, 1, 0, 0) f (1, 1, 0, 1) f (1, 1, 1, 0) f (1, 1, 1, 1)
x2 x2 x2 x2
x 1 x2 x1x2 x1 x2 x1 x2
x1 (1, 1) (1, 0) x1 (1, 1) (1, 0)
x1 x1 x2 x1x2 x1 x1 x2 x 1 x2
(0, 1) (0, 0) (0, 1) (0, 0)
pentru mintermii de două variabile pentru maxtermii de două variabile
x2 x2
x1 x1 x2x3 x 1 x2 x 3 x 1x2 x3 x1x2x3
(1, 1, 0) (1, 1, 1) (1, 0, 1) (1, 0, 0)
x1 x1 x2x3 x1 x2 x3 x1x2 x3 x1x2x3
(0, 1, 0) (0, 1, 1) (0, 0, 1) (0, 0, 0)
x3 x3 x3
pentru mintermii de trei variabile
x2 x2
x1 x1 x2 x3 x1 x2 x3 x1 x2 x3 x1 x2 x3
(1, 1, 0) (1, 1, 1) (1, 0, 1) (1, 0, 0)
51
x1 x1 x2 x3 x1 x2 x3 x1 x2 x3 x1 x2 x3
(0, 1, 0) (0, 1, 1) (0, 0, 1) (0, 0, 0)
x3 x3 x3
pentru maxtermii de trei variabile
x2 x2 x2 x2
x1 x4 x1 x4
x4 x 4
x1 x1
x4 x4
x3 x3 x3 x3 x3 x3
pentru mintermii de patru variabile pentru maxtermii de patru variabile
x2 0 1
x1
0 f (0, 0) f (0, 1)
1 f (1, 0) f (1, 1)
x2 x3 00 01 11 10
x1
0 f (0, 0, 0) f (0, 0, 1) f (0, 1, 1) f (0, 1, 0)
1 f (1, 0, 0) f (1, 0, 1) f (1, 1, 1) f (1, 1, 0)
x3 x4 00 01 11 10
x1 x2
00 f (0, 0, 0, 0) f (0, 0, 0, 1) f (0, 0, 1, 1) f (0, 0, 1, 0)
01 f (0, 1, 0, 0) f (0, 1, 0, 1) f (0, 1, 1, 1) f (0, 1, 1, 0)
11 f (1, 1, 0, 0) f (1, 1, 0, 1) f (1, 1, 1, 1) f (1, 1, 1, 0)
10 f (1, 0, 0, 0) f (1, 0, 0, 1) f (1, 0, 1, 1) f (1, 0, 1, 0)
Exemplu:
52
f :(B(2))3 B(2), f(x 1,x2,x3) = x1 x2 x1x2 x3 x1x2 x1 x2x3 .
Pentru construirea diagramei Veitch funcţia trebuie pusă sub forma canonică
disjunctivă:
f(x1, x2, x3) = (x1 x2 (x3 x3)) (x1x2 (x3 x3)) x1x2x3 x1 x2 x3 =
= x 1 x2 x3 x1x2x3 x1x2 x3 x1 x2x3 x1 x2 x3 x1 x2x3 .
Atunci diagrama Veitch asociată este de forma:
x2 x2
x1 1 1 1 0
x1 1 0 1 1
x3 x3 x3
x2 x2 x2 x2
x1 x4 x1 x4
x4 x4
x x
1 x4 1 x4
x 3 x3 x3 x3
x3 x3
x5 x5
Figura 3.
I x2 x2 II x2 x2
53
x1 x4 x1 x4
x5 x4 x4
x x1
1 x4 x4
x3 x3 x3 x3
x3 x3
Figura 4.
Observaţie:
Suprapunerea celor patru “nivele” ale diagramei corespunzătoare cazului n = 6
trebuie făcută respectând ordinea I, II, III, IV sau o permutare circulară a acesteia.
Modul în care au fost “grupate” diagramele păstrează proprietatea de a
corespunde unor combinaţii adiacente oricare două celule alăturate în plan orizontal sau
pe verticală.
n
Definiţia 9. O funcţie booleană f : B 2 B 2 pentru care o parte a coeficienţilor
formelor canonice nu sunt definiţi se numesc funcţii incomplet definite
sau simplu funcţii incomplete.
Observaţie:
În aplicaţiile practice apar deseori funcţii incomplete. Se consideră atunci că
aceşti coeficienţi nedefiniţi pot lua valori arbitrare 0 sau 1.
n n
Se notează cu f 0 : B 2 B 2 şi respectiv f1 : B 2 B 2 funcţiile
n
booleene obţinute din f : B 2 B 2 înlocuind cu 0 şi respectiv 1 toţi coeficienţii
nedefiniţi. Vom avea atunci
f 0 x1 , x 2 ,.., x n f1 x1 , x 2 ,.., x n , x1 , x 2 ,.., x n B 2
n
54
Vom nota în continuare funcţia incompletă f prin perechea f 0 , f1 formată din
marginea inferioară f 0 şi marginea superioară f 1 a sa.
n
f f 0 , f1 g : B 2 B 2 f 0 g f1
Propoziţia 2. Fie f o funcţie booleana incompletă, f f 0 , f1 .
Atunci f 0 g f1 implică f1 g f 0 şi f1* g * f 0* .
Datorită acestei propoziţii are sens urmatoarea definiţie:
Definiţia 10. Funcţia booleană incompletă f f1 , f 0
se numeşte funcţie
incompletă inversă a funcţiei incomplete f f 0 , f 1 , iar funcţia
booleană incompletă f * f1* , f 0* se numeşte funcţia incompletă
duală a funcţiei incomplete f f 0 , f1 .
Observaţie:
Mulţimea funcţiilor booleene incomplete este definită de mulţimea perechilor de
funcţii booleene comparabile în raport cu relaţia de implicaţie.
n
Notăm FB f f : B 2 B 2 mulţimea funcţiilor booleene de n variabile
n
Definiţia 11. Dată fiind funcţia booleeană f :( B ( 2 )) B ( 2 ) se numeşte funcţie
n
booleană inversă ataşată lui f, funcţia F :( B ( 2 )) B ( 2 ) care satisface relaţiile:
55
f ( x , x ,..., x ) F ( x , x ,..., x ) 1
1 2 n 1 2 n n
( ) ( x , x ,..., x ) ( B ( 2 )) .
f ( x , x ,..., x ) F ( x , x ,..., x ) 0 1 2 n
1 2 n 1 2 n
n
Definiţia 12. Se numeşte funcţie duală a funcţiei booleene f :( B ( 2 )) B(2) funcţia
* n
booleana f :( B ( 2 )) B ( 2 ) obţinută prin aplicarea principiului
dualităţii formelor normale conjunctive sau disjunctive ale lui f,
adică:
f ( x , x ,..., x ) = (f ( ,..., ) x 1 x 2 ... x n )
1 2 n 1 n
( , ,..., )( B (2))n
1 2 n
implică
*
f ( x , x ,..., x ) = ( f ( ,..., ) x 1 x 2 ... x n )
1 2 n 1 n
( ,..., )( B (2))n
1 n
respectiv
f ( x , x ,..., x ) = (f ( ,..., ) x 1 x 2 ... x n )
1 2 n 1 n 1 2 n
( , ,..., )( B (2))n
1 2 n
implică
*
f ( x , x ,..., x ) = ( f ( ,..., ) x 1 x 2 ... x n )
1 2 n 1 n 1 2 n
( ,..., )( B (2))n
1 n
Observaţie:
Între funcţia duală şi funcţia inversă ale unei funcţi booleene există relaţia:
*
f ( x , x ,..., x ) = f ( x , x ,…, x ).
1 2 n 1 2 n
ab 0 1 ab 0 1
56
0 0 1 0 0 0
1 1 0 1 0 1
a b ab a b a b
0 0 0 0 0 0
0 1 1 0 1 0
1 0 1 1 0 0
1 1 0 1 1 1
57
iv. distributivitate a (b c) = a b a c;
v. a 0 = a; a 1 = a;
vi. a a = 0.
Rezultă că:
a b = a b
ab=abab
a a 1
sunt operaţiile ce conferă mulţimii GF(2) structură de algebră booleană.
Stabilim în continuare forma generală a expresiilor algebrice. În cele ce urmează
nu vom face distincţie între înmulţirea modulo-2 şi “şi” boolean şi vom folosi acelaşi
simbol (juxtapunerea).
f(x1)= d 0 x 1 d 1 x 1 .
Prin urmare
f(x1)=d0(x1 1) 1)(d1x1 1) 1) =
=((d 0x1 d0) 1)(d1x1 1) 1 =
=d0d1x1 d0d1x1 d1x1 d0x1 d0 =
=d0 (d0 d1)x1
f(x1)=c0 c1x1 peste GF(2), unde ci = 0 sau 1.
Coeficienţii acestei noi expresii se pot exprima în funcţie de coeficienţii din forma
iniţială utilizând matricea transformării modulo-2:
c 0 1 0 d 0
peste GF(2)
c1 1 1 d 1
deoarece
c0 = d 0
c1 = d 0 d 1 = d 0 d 1 d 1 d 0
Simbolic, putem scrie:
c = T1 d
şi se poate extinde acest concept la funcţiile de mai multe variabile.
În cazul n = 2, variabilele fiind x1 şi x2 forma normală canonică disjunctivă este:
f(x2,x1) = d0m0 d1m1 d2m2 d3m3
Deoarece mimj = 0 pentru ij (doi mintermi sunt mutual exclusivi), deci nu pot fi
simultan egali cu 1, se poate înlocui suma logică (“sau-inclusiv”) cu suma modulo-2
(“sau-exclusiv”), fără a altera validitatea expresiei. Avem, deci:
f(x2,x1) = d0m0 d1m1 d2m2 d3m3 =
58
= d 0 x 2 x1 d 1 x 2 x1 d 2 x1 x 2 d 3 x 2 x1
= d0(x2 1)(x1 1) d1(x2 1)x1 d2(x1 1)x2 d3x2x1=
= d0 (d0 d1)x1 (d0 d2)x2 (d0 d1 d2 d3)x2x1
Deci
f(x2,x1) = c0 c1x1 c2x2 c3x2x1 peste GF(2)
unde
c 0 d0
c d 0 d1
1
c 2 d0 d2
c 3 d 0 d1 d 2 d 3
adică
c 0 1 0 0 0 d 0
c1 1 1 0 0 d 1
c 1 0 1 0 d 2
2
c 1 1 1 1 d 3
3
sau
c = T 2 d peste GF(2).
Matricea transformării T2 poate fi exprimată astfel în funcţie de T1:
T1 0
T2 = .
T1 T1
În general, în cazul a n-variabile, matricea transformării Tn se poate exprima
recursiv astfel:
Tn 1 0
Tn = , pentru n>0 şi T0 = (1) peste GF(2).
Tn 1 Tn 1
Forma generală (în cazul a n-variabile) a funcţiei (şi respectiv a expresiei care o
defineşte) este:
f(xn, xn-1,...x 1) =c0 c1x1 c2x2 c3x2x1 c4x3 c5x3x1 … c 2 n 1 xnxn-1...x 1
peste GF(2) sau
2 n 1
f(xn,xn-1,...,x 1)= c i x n i , n x n i ,1n 1 ... x 1 i ,1 ,
i0
unde suma este suma peste GF(2), deci , iar i,j sunt 0 sau 1 astfel încât
x 0k 1, x 1k x k .
Expresia ce defineşte funcţia f este o sumă de produse modulo-2, cunoscută sub
denumirea de expresie Reed-Muller.
În această expresie avem 2n termeni posibili. Termenii se numesc deseori -
termi (sau pitermi) şi sunt notaţi prin i.
Indicele i al pitermului i este echivalentul zecimal al numărului binar format prin
concatenarea cantităţilor i,n,i,n-1,..., i,1, unde i,1 este luat ca bitul cel mai puţin
semnificativ, deci
i(10 )= i,ni,n-1...i,2i,1 (2) .
59
Astfel:
x 6 x 3 x 1 x 16 x 50 x 04 x 13 x 02 x 11 37
şi
23 = x 15 x 04 x 13 x 12 x 11 x 5 x 3 x 2 x 1 .
Observăm că:
x i 2 1 şi 0 = 1.
i
3.10 Rezumat
60
Funcţiile booleene de variabile polivalente se tratează prin intermediul
funcţiilor booleene de variabile booleene explicitându-se fiecare variabila multivalentă cu
ajutorul variabilelor bivalente.
Structura Reed-Muller (inelul boolean al claselor de resturi moduo 2) este
adesea utilizată, alaturi de algebra booleană, pentru studiul proiectării şi implementării
circuitelor de comutaţie. Pentru a se stabili legături între coeficienţii formelor canonice
ale funcţiilor din algebra booleană şi coeficienţii pitermilor din expresiile Reed-Muller,
concepte de matrice, transformare, polinom au semnificaţii bine precizate. Pentru
realizarea transformărilor de coeficienţi se pot utiliza matricele de transformare definite
recursiv folosind produsul Kronecker sau triunghiul lui Pascal.
Expresii Reed-Muller generalizate pot fi deasemenea asociate funcţiilor
booleene pentru a se obţine, cu ajutorul aceloraşi operatori modulo 2 combinaţi cu negaţii
aplicate asupra anumitor variabile (stabilite prin numărul de polaritate), expresii cu cost
scăzut de construcţie a circuitului combinaţional asociat.
Circuitele elementare de construcţie a circuitelor combinaţionale sunt circuitele
poartă (care efectuează una dintre operaţiile logice de disjuncţie, conjuncţie, negaţie,
sau-exclusiv). Sumatorul binar cu o poziţie şi sumatorul binar cu n poziţii sunt două
exemple reprezentative de implementare fizică a funcţiilor booleene.
61
Test de autoevaluare1 (Verificaţi-vă cunoştinţele!)
Perseveraţi pentru a obţine soluţiile date în finalul testului!
a) - 15 b) - 7 c)
+13
+7 -13 -
12
62
7. Să se reprezinte în standardul IEEE P754, simplă precizie, următoarele
numere:
a) +1.101 25
b) -1.01011 2-126
c) +1.0 2127
d) +0
e) -0
f) +2-128
g) +NAN
a) 0 10000011 01100000000000000000000
b) 1 10000000 00000000000000000000000
c) 1 00000000 00000000000000000000000
d) 1 11111111 00000000000000000000000
e) 0 11111111 11010000000000000000000
f) 0 00000001 10010000000000000000000
g) 0 00000011 01101000000000000000000
h) 0 00000000 10000000000000000000000
63
2. a) D 00101111 b) 10011011 c)
01111101
I 00101111 11100100
01111101
C 00101111 11100101
01111101
d) nu poate fi e) 11000010 f)
11000001
reprezentat 10111101
10111110
10111110
10111111
5. a) –8 b) C 12 eroare de depasire c) 1
I 11 eroare de depasire
6. a) -1F.A(16)
11000010000111110100000000000000
b) 0.00A3D7(16)
00111110101000111101011100001010
c) 100.2(16)
01000011000100000000001000000000
7. a) 0 10000100 10100000000000000000000
b) 1 00000001 01011000000000000000000
c) 0 11111110 00000000000000000000000
d) 0 00000000 00000000000000000000000
e) 1 00000000 00000000000000000000000
f) 0 00000000 10000000000000000000000
g) 0 11111111 01101110000000000000000
9. a) 01111111011111111111111111111111
b) 00000000010000000000000000000000 = 2 -128
c) 00000000100000000000000000000000 = 2 -126
64
Test de autoevaluare2 (Verificaţi-vă cunoştinţele!)
Perseveraţi pentru a obţine soluţiile date în finalul testului!
X1 X2 X3 f
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
să se determine:
a) forma canonică disjunctivă,
b) forma canonică conjunctivă,
c) forma caracteristică,
d) forma minimală (formele minimale),
e) expresia Reed-Muller asociată,
65
7. Să se determine expresiile algebrice pentru funcţiile f, g : P(3) 2P(3),
definite mai jos, unde P(3) are o structură Post de dimensiune 3. Să se deducă şi formele
simplificate, utilizând diagramele Karnaugh ternare.
X1 X2 f g
0 0 2 1
0 1 2 0
0 2 1 2
1 0 0 1
1 1 0 0
1 2 1 2
2 0 0 1
2 1 2 1
2 2 1 2
Răspunsuri:
1. 2 n elemente, unde n este numărul atomilor săi (vezi legătura dintre algebra
booleană şi inelul boolean).
2. q 4.
+ 0 1 2 3 4
0 0 1 2 3 4
1 1 1 2 3 4
2 2 2 2 3 4
3 3 3 3 3 4
4 4 4 4 4 4
0 1 2 3 4
0 0 0 0 0 0
1 0 1 1 1 1
2 0 1 2 2 2
3 0 1 2 3 3
4 0 1 2 3 4
0 1 2 3 0
1 2 3 0 1
2 3 0 1 2
3 0 1 2 3
q 5.
66
+ 0 1 2 3 4 5
0 0 1 2 3 4 5
1 1 1 2 3 4 5
2 2 2 2 3 4 5
3 3 3 3 3 4 5
4 4 4 4 4 4 5
5 5 5 5 5 5 5
0 1 2 3 4 5
0 0 0 0 0 0 0
1 0 1 1 1 1 1
2 0 1 2 2 2 2
3 0 1 2 3 3 3
4 0 1 2 3 4 4
5 0 1 2 3 4 5
67
aceasta este: m0+m3+m5+1.m6+1.m7+1.m8 .
Forma simplificată este:
1.j2(x2)+1.j0(x1)+m0+m3+ m5 = 1.j 2(x2)+1.j0(x1)+j0(x2)j0(x1)+j1(x2)j0(x1)+
+j1(x2)j2(x1).
0 1 2
0 1 1 1
1 0 0 1
2 2 2 2
8.
0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
0 1 2 3 4
0 0 0 0 0 0
1 0 1 2 3 4
2 0 2 4 1 3
3 0 3 1 4 2
4 0 4 3 2 1
68
Universitatea Transilvania Braşov
Facultatea de Matematică şi Informatică
Catedra de Informatică Teoretică
Învăţământ la Distanţă
e) 110011001
e) 110011001
69
6. Să se reprezinte în virgula mobilă, utilizând forma normalizată stabilită
în funcţie de puterile lui 16, numerele:
a) +12345(10)
b) -111.01011 2-12
c) +145.012 2120
d) +0.375
e) –0.1234
f) +2-127
g) -NAN
a) 0 11110000 01101100000000000000001
b) 1 10000000 11000000000000000000000
c) 1 00000001 00000000000000000000000
d) 1 11111111 10000000000000000000000
e) 0 11111111 11010000000000000000000
f) 0 00000111 10011100000000000000000
g) 0 00000111 01101000000000000000000
h) 1 00000111 11100000000000000000000
a) + şi -,
b) cel mai mare număr întreg reprezentabil în format,
c) cel mai mic număr înreg reprezentabil în format.
70
Universitatea Transilvania Braşov
Facultatea de Matematică şi Informatică
Catedra de Informatică Teoretică
Învăţământ la Distanţă
X1 X2 X3 f
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
să se determine:
a) forma canonică disjunctivă,
b) forma canonică conjunctivă,
c) forma caracteristică,
71
d) forma minimală (formele minimale),
e) expresia Reed-Muller asociată,
X1 X2 f g
0 0 2 1
0 1 2 0
0 2 2 2
1 0 1 1
1 1 1 0
1 2 1 2
2 0 1 1
2 1 2 0
2 2 1 2
72
CUPRINS
Partea întâia
BAZELE ARITMETICE ALE SISTEMELOR DE CALCUL
73
Partea a doua
BAZELE LOGICE ALE SISTEMELOR DE CALCUL
Cuprins................................................................................ ...........................................73
74