Sunteți pe pagina 1din 24

Introducere

În zilele noastre calculatorul a devenit nelipsit în majoritatea activităţilor cotidiene.


Pentru un bun informatician este necesar nu numai să-l folosească, dar şi să-i înţeleagă modul
de funcţionare. Cursul de Logică computaţională este o prezentare a fundamentelor aritmetice
şi logice ale sistemelor de calcul, care, în general, rămân neschimbate, deşi tehnologiile
folosite la fabricarea calculatoarelor sunt într-o continuă schimbare.

Obiectivele cursului
Cursul de Logică computaţională are ca obiectiv principal îmbogăţirea
cunoştinţelor de fundamentele Informaticii ale studenţilor Programului de studii
Informatică, forma de învăţământ ID. În acest sens, la sfârşitul acestui curs,
studenţii vor fi capabili să:
 Efectueze operaţii aritmetice cu numere reprezentate în orice bază;
 Să efectueze conversii între diferite baze;
 Să identifice legăturile dintre calculatoare şi sistemele de numeraţie binare,
octale şi hexazecimale;
 Să ştie cum sunt reprezentate în memoria calculatorului numerele întregi, reale
şi caracterele;
 Să interpreteze conţinutul unei locaţii de memorie, cunoscând tipul de date
memorate;
 Să determine forma normală disjunctivă şi forma normală conjunctivă a unei
funcţii Booleene;
 Să minimize funcţii Boolene;
 Să construiască circuitul logic combinatorial optim pentru orice problemă
practică care poate fi scrisă printr-o funcţie Booleană.

Cerinţe preliminare
Nu sunt necesare decât cunoştinţe din învăţământul preuniversitar, acesta fiind
unul dintre cursurile din primul semestru.

Resurse
Parcurgerea unităţilor de învăţare aferente acestui curs nu necesită existenţa unor
mijloace sau instrumente de lucru.

1
Structura cursului
Cursul de Logică computaţională este structurat în patru module, astfel: primul
modul cuprinde trei unităţi de învăţare, al doilea modul trei unităţi de învăţare, al
treilea modul cinci unităţi de învăţare, iar al patrulea modul cunprinde două unităţi
de învăţare. La rândul său, fiecare unitate de învăţare cuprinde: obiective, aspecte
teoretice privind tematica unităţii de învăţare respective, exemple, teste de evaluare
precum şi probleme propuse spre discuţie şi rezolvare.
La sfârşitul ultimelor trei module sunt indicate teme de control. Rezolvarea acestor
trei teme de control este obligatorie. Acestea vor fi transmise de către studenţi
profesorului până la odată prestabilită.

Durata medie de studiu individual


Parcurgerea de către studenţi a unităţilor de învăţare ale cursului de Logică
computaţională (atât aspectele teoretice cât şi rezolvarea testelor de autoevaluare şi
rezolvarea problemelor propuse) se poate face în 2-3 ore pentru fiecare unitate de
învăţare.

Evaluarea
La sfârşitul semestrului, fiecare student va primi o notă, care va cuprinde: un test,
ce va conţine întrebări teoretice şi practice din materia prezentată în cadrul acestui
material, test de va deţine o pondere de 75% în nota finală. Media notelor aferente
testelor de evaluare, realizate pe parcursul semestrului, va deţine o pondere de
25%.

Spor la treaba !

2
Cuprins
M1. Sisteme de numeraţie............................................................................................... 4
M1.U1. Conceptul de sistem de numeraţie ..................................................................... 6
M1.U2. Aritmetica în baza b......................................................................................... 11
M1.U3. Schimbarea bazei ............................................................................................. 18
M2. Reprezentarea datelor ............................................................................................ 25
M2.U1. Reprezentarea numerelor întregi ..................................................................... 26
M2.U2. Operaţii aritmetice cu numere întregi în cod complementar ........................... 32
M2.U3. Reprezentarea numerelor raţionale şi a caracterelor ....................................... 41
M3. Bazele logicii ......................................................................................................... 48
M3.U1. Algebra booleană ............................................................................................. 50
M3.U2. Forme normale ale funcţiilor boolene ............................................................. 56
M3.U3. Simplificarea funcţiilor booleene .................................................................... 63
M3.U4. Funcţii booleene incomplet definite ................................................................ 71
M3.U5. Circuite logice ................................................................................................. 76
M4. Expresii Reed- Müller ........................................................................................... 84
M4.U1. Expresii Reed- Müller ..................................................................................... 85
M4.U2. Expresii Reed-Müller generalizate ................................................................ 100

3
Modulul 1. Sisteme de numeraţie

Cuprins
Introducere ...................................................................................................................... 4
Obiectivele modului ........................................................................................................ 5
U1. Conceptul de sistem de numeraţie ........................................................................... 6
U2. Aritmetica în baza b ............................................................................................... 11
U3. Schimbarea bazei ................................................................................................... 18

Introducere
Sistemele de numeraţie au apărut pentru a răspunde necesităţii oamenilor de a
număra. Dacă iniţial oamenii peşterilor făceau doar diferenţa dintre unu şi mulţi, cu
timpul limbile primitive au evoluat astfel încât se putea face distincţia între unu,
doi şi mulţi, iar mai târziu între unu, doi, trei şi mulţi. Adică nu existau cuvinte
care să exprime numere mai mari decât trei. Acestă lipsă mai persistă şi astăzi în
unele limbi, de exemplu în limba vorbită de indienii Siriona din Bolivia.
Deşi nu aveau cuvinte care să exprime numere mai mari decât 2, anumite triburi
(Bacairi şi Bororo din Brazilia) au creat sisteme numerice de genul unu, doi, doi şi
unu, doi şi doi, doi si doi şi unu şi aşa mai departe. Acest sistem de numeraţie nu
este altceva decât binecunoscutul sistem binar atât de răspândit în era
calculatoarelor. Însă puţini oameni au numărat din 2 în 2. O altă modalitate de
numărare era cu ajutorul unor crestături făcute într-un os. Crestăturile mici erau
grupate câte 5, iar după 5 grupe exista o crestătură de alt tip. Acestă modalitate de
grupare a crestăturilor în os corespunde sistemului de numeraţie în baza 5, care a
fost preferat de multe culturi, fiind mai uşor de utilizat deoarece, pentru a număra,
oamenii îşi foloseau degetele, care sunt grupate tot câte 5. Folosind apoi degetele
ambelor mâini s-a ajuns la sistemul zecimal, iar folosindu-le şi pe cele ale
picioarelor la cel în baza 20, utilizat de mayaşi. De asemenea, locuitorii Franţei se
pare că au folosit sistemul în baza 20.
Un sistem care merită menţionat este cel babilonian care era sexagesimal, adică în
baza 60, care, în mod bizar, nu avea 60 de simboluri diferit pentru fiecare „cifră” .
Babilonienii nu foloseau decât două semne: un cui pentru 1 şi două cuie pentru 10.
Celelalte „cifre” erau grupe de astfel de semne. Dar o mare problema a sistemului
babilonian a fost faptul că un cui putea reprezenta 1, 60, 3600 sau o infinitate de
alte numere.
În zilele noastre, este util să putem reprezenta numere şi să putem lucra cu numere

4
nu numai în baza 10, dar şi în orice alt sistem de numeraţie şi să putem trece dintr-
o bază în alta.

Competenţe
La sfârşitul acestui modul studenţii vor fi capabili să:
 Reprezinte orice număr într-o bază dată b;
 Efectueze schimbări de baze;
 Efectueze operaţii aritmetice cu numere reprezentate în orice bază;
 Să identifice legăturile dintre calculatoare şi sistemele de numeraţie binare,
octale şi hexazecimale.

5
Unitatea de învăţare M1.U1. Conceptul de sistem de numeraţie

Cuprins
M1.U1.1. Introducere ...................................................................................................... 6
M1.U1.2. Obiectivele unităţii de învăţare ....................................................................... 6
M1.U1.3. Definirea sistemului de numeraţie .................................................................. 6
M1.U1.4. Teorema sistemelor de numeraţie ................................................................... 8
M1.U1.5. Rezumat ........................................................................................................ 10
M1.U1.6. Test de evaluare a cunoştinţelor ................................................................... 10

M1.U1.1. Introducere
Sistemele de numeraţie au apărut pentru a răspunde necesităţii oamenilor de a
număra. În decursul timpului au fost folosite diferite sisteme de numeraţie, până ca
sistemul zecimal să se impună.

M1.U1.2. Obiectivele unităţii de învăţare


Această unitate de învăţare îşi propune ca obiectiv principal însuşirea de către
studenţi a conceptului de sistem de numeraţie.
La sfârşitul acestei unităţi de învăţare studenţii vor fi capabili să:
 realizeze deosebirile dintre sistemele de numeraţie poziţionale şi cele
nepoziţionale;
 Reprezinte orice număr într-o bază dată b.

Durata medie de parcurgere a primei unităţi de învăţare este de 3 ore.

M1.U1.3. Definirea sistemului de numeraţie

Un sistem de numeraţie este format din totalitatea regulilor de reprezentare a numerelor cu


ajutorul unor simboluri distincte, numite cifre. Există două categorii de sisteme de numeraţie:
1. sisteme de numeraţie poziţionale
2. sisteme de numeraţie aditive sau nepoziţionale

6
Un sistem de numeraţie se numeşte poziţional, dacă valoarea unei cifre este dată de poziţia
pe care aceasta o ocupă în cadrul numărului. Sistemele de numeraţie zecimal, binar, octal,
hexazecimal sunt sisteme de numeraţie poziţionale.
Într-un sistem de numeraţie aditiv, cifrele au aceeaşi valoare, indiferent de poziţia pe
care se află. De exemplu, sistemul de numeraţie roman este un sistem de numeraţie aditiv.

Numărul de cifre dintr-un sistem de numeraţie poziţional se numeşte bază.

Exemple de sisteme de numeraţie poziţionale


1. Sistemul binar are baza 2, iar cifrele sale sunt 0 si 1, numite şi biţi (bit =
binary digit). Sistemul binar este utilizat pentru reprezentarea cele două
stări posibile ale unui dispozitiv bistabil. De exemplu, un întrerupător
poate fi deschis sau închis, un loc de pe un disc magnetic pot fi
magnetizat sau nemagnetizat etc.
2. Sistemul octal are baza 8, iar cifre sale sunt 0, 1, 2, 3, 4, 5, 6 şi 7. A fost
folosit şi este folosit în continuare în limbajul de asamblare.
3. Sistemul zecimal este sistemul de numeraţie pe care îl folosim în viaţa de
zi cu zi, are la baza 10, iar cifre sale sunt 0, 1, 2, 3, 4, 5, 6, 7, 8 şi 9.
4. Sistemul hexazecimal are baza 16 şi cifre sale sunt 0, 1, 2, 3, 4, 5, 6, 7, 8,
9, A, B, C, D, E şi F. Sistemul de numeraţie hexazecimal este utilizat
atunci când se lucrează direct cu adresele de memorie.

Exemplu de sistem de numeraţie aditiv


Sistemul roman este un sistem de numeraţie aditiv. Cifrele sale sunt I, V, X, L, C,
D, M, ale căror valori sunt 1, 5, 10, 50, 100, 500, 1000.
Reguli de scriere:
1. mai multe cifre de aceeaşi valoare, scrise consecutiv, reprezintă suma acestor
cifre. De exemplu, II = 2, XXX = 30.
2. două cifre diferite, cu cifra mai mare aflată în faţa cifrei mai mici, reprezintă
suma acestor cifre. De exemplu, XI = 11, CX = 110.
3. două cifre diferite, cu cifra mai mare aflată după cifra mai mică, reprezintă
diferenţa acestor cifre. De exemplu, IX = 9, XC = 90.

Sistemul roman are câteva dezavantaje majore: sunt posible mai multe
reprezentări ale aceluiaşi număr (VIII = IIX), reprezentări lungi ale unor numere
relativ “mici” (CCCXXXIII = 333), operaţii aritmetice foarte dificil de efectuat,
lipsa unei reprezentări pentru 0 etc.

7
M1.U1.4. Teorema sistemelor de numeraţie

Teorema sistemelor de numeraţie Fie bN*, b > 1. Pentru orice număr natural NN*, există
numerele n, a0, a1,..., anN astfel încât ai <b pentru orice i, 0  i  n, an > 0 şi
N = anbn + an-1bn-1 + ...+ a1b + a0.
Mai mult, aceste numere sunt unice.

Demonstraţie. Din Teorema împărţirii cu rest avem că:


N = N0b + a0 cu 0  a0 <b.
Evident, N0 < N, pentru că în caz contrar am avea
N < Nb  N0b  N0b + a0 = N, ceea ce este absurd.
De asemenea, din Teorema împărţirii cu rest avem că:
N0 = N1b + a1 cu 0  a1 <b , N1 < N0.
În acelaşi mod, determinăm şirul finit:
N > N0 > N1 > N2.> ... > 0.
Deci, există un număr natural n astfel încât
Nn = 0
sau, echivalent,
Nn-1 = 0b + an, cu 0 < an <b.
Deci, am obţinut:
N = N0b + a0
N0 = N1b + a1
....
Nn-2 = Nn-1 b + an-1
Nn-1 = an
Înmulţind aceste egalităţi cu puteri ale lui b (de la 0 la n) şi adunându-le, obţinem:
N = anbn + an-1bn-1 + ...+ a1b + a0.
Vom demonstra prin reducere la absurd că numerele n, a0, a1,..., an sunt unice.
Presupunem prin absurd că există numerele p, c0, c1,..., cp astfel încât
N = cpbp + cp-1bp-1 + ...+ c1b + c0.
Dacă n < p atunci,
n p
N=  aibi < bn+1  bp   cibi = N, ceea ce este absurd.
i 0 i 0

Deci, n  p.
În acelaşi mod, se poate arăta că p  n. Deci, n = p.
Mai trebuie demonstrat că ai = ci for 0  i  n.
Dacă n = 0 atunci a0 = N = c0.
Dacă n > 0, atunci
N = a0 + b(anbn-1 + an-1bn-2 + ...+ a1), 0  a0 <b
şi
N = c0 + b(cnbn-1 + cn-1bn-2 + ...+ c1) , 0  c0 <b.
Din Teorema împărţirii cu rest rezultă că
a0 = c0 pentru că sunt resturi în împărtirea a două numere întregi
şi

8
anbn-1 + an-1bn-2 + ...+ a1 = cnbn-1 + cn-1bn-2 + ...+ c1 pentru că sunt câturi în
împărtirea a două numere întregi.
Succesiv, obţinem că a1 = c1, a2 = c2, ..., an = cn.

Observaţie a) Teorema sistemelor de numeraţie arată că există o corespondenţă biunivocă


între numerele naturale strict pozitive N şi şirurile finite de numere naturale a0, a1,..., an unde
0  ai <b pentru orice i, 0  i  n şi 0 < an < b. Deci, orice număr natural N poate fi scris în
oricare dintre următoarele forme:
N = anan-1...a1a0 = anbn + an-1bn-1 + ...+ a1b + a0.

Suma anbn + an-1bn-1 + ...+ a1b + a0 se numeşte notaţie extinsă.


an este cea mai semnificativă cifră, iar a0 este cea mai puţin semnificativă cifră a
numărului N.

b) Atunci când se lucrează cu diferite baze, se precizează şi baza: vom nota


anan-1...a1a0(b) în loc de anan-1...a1a0.

O consecinţă importantă a Teoremei sistemelor de numeraţie este algoritmul


sistemelor de numeraţie, care este o metodă de conversie a unui număr întreg din baza 10 într-
o bază oarecare b.

Algoritm sisteme numeratie;


begin
read N, b;
i ← 0;
repeat
ai ← N % b; //restul împăţirii
N ← [N / b]; //câtul împărţirii
i ← i + 1;
until N = 0;
write cifrele ai-1, ai-2, ... , a0 ale numărului scris în baza b;
end.

Exemplu
Vom converti numărul zecimal 493 în baza 8.

Împărţind 493 la 8 obţinem câtul 61 şi restul 5.


Împărţind 61 la 8 obţinem câtul 7 şi restul 5.
Împărţind 7 la 8 obţinem câtul 0 şi restul 7.
Conversia în baza 8 a numărului zecimal 493 se obţine scriind, în ordine
inversă, resturile obţinute la împărţirile succesive la 8. Deci, 493(10) = 755(8).

9
Exemplu
Vom converti numărul zecimal 168 în baza 16.

Împărţind 168 la 16 obţinem câtul 10 şi restul 8.


Împărţind 10 la 16 obţinem câtul 0 şi restul 10, căruia îi corespunde cifra
hexazecimală A.
Conversia în baza 16 a numărului 168 se obţine scriind, în ordine inversă,
resturile obţinute la împărţirile succesive la 16. Deci, 168(10) = A8(16).

M1.U1.5. Rezumat
Există două categorii de sisteme de numeraţie: sisteme de numeraţie
poziţionale şi sisteme de numeraţie aditive sau nepoziţionale. Sistemul roman este
un sistem de numeraţie nepoziţional. Sistemul zecimal, pe care îl folosim de obicei şi
sistemul binar folosit de calculatoare sunt sisteme poziţionale.

Orice număr natural strict pozitiv N poate fi scris în mod unic sub forma
N = anbn + an-1bn-1 + ...+ a1b + a0
unde 0  ai <b pentru orice i, 0  i  n şi 0 < an < b,
sau echivalent N = anan-1...a1a0(b).
Algoritmul sistemelor de numeraţie este o metodă de conversie a unui număr întreg
din baza 10 într-o bază oarecare b>1.

M1.U1.6. Test de evaluare a cunoştinţelor


1. Scrieţi numărul zecimal 123 în baza 2, în baza 5, în baza 8 şi în baza 16.
2. Scrieţi numărul zecimal 58674 în baza 5, în baza 8, în baza 9 şi în baza
16.

10
Unitatea de învăţare M1.U2. Aritmetica în baza b

Cuprins
M1.U2.1. Introducere .................................................................................................... 11
M1.U2.2. Obiectivele unităţii de învăţare ..................................................................... 11
M1.U2.3. Compararea numerelor în baza b .................................................................. 11
M1.U2.4. Adunarea numerelor în baza b ...................................................................... 12
M1.U2.5. Scăderea numerelor în baza b ....................................................................... 14
M1.U2.6. Înmulţirea numerelor în baza b..................................................................... 15
M1.U2.7. Rezumat ........................................................................................................ 16
M1.U2.8. Test de evaluare a cunoştinţelor ................................................................... 17

M1.U2.1. Introducere
Sistemele de numeraţie au apărut din necesitatea oamenilor de a număra şi de a
socoti. În zilele noastre, sistemul zecimal se foloseşte aproape pretutindeni, însă
este uneori necesar să efectuăm operaţii în alte sisteme de numeraţie. În continuare
vom studia aritmetica într-o bază oarecare b.

M1.U2.2. Obiectivele unităţii de învăţare


Această unitate de învăţare îşi propune ca obiectiv principal însuşirea de către
studenţi a aritmeticii într-o bază oarecare b, b >1.
La sfârşitul acestei unităţi de învăţare studenţii vor fi capabili să:
 Să compare numere scrise în orice bază b
 Să efectueze adunări, scăderi şi înmulţiri de numere întregi într-o bază dată b.

Durata medie de parcurgere a acestei unităţi de învăţare este de 3 ore.

M1.U2.3. Compararea numerelor în baza b

Teoremă (Compararea numerelor naturale) Fie bN, b > 1 şi fie a şi c două numere
naturale scrise în baza b, a = amam-1...a1a0(b) , c = cncn-1...c1c0(b). Atunci
a < c dacă şi numai dacă m < n sau
m = n şi ap < cp unde p = max {i | ai  ci}.

11
Demonstraţie. Fie a < c.
Presupunem prin absurd că m > n.
n n
Atunci c =  cibi   (b  1)bi = bn+1 -1< bn+1  bm  a, ceea ce este absurd.
i 0 i 0

Deci, m  n.
Dacă m < n atunci stop, altfel înseamnă că m = n. În acest caz, evident că ap < cp, unde p =
max {i | ai  ci}.
m m
Reciproc, dacă m < n atunci a =  aibi   (b  1)bi = bm+1 -1< bm+1  bn  c. Deci,
i 0 i 0
a < c.
Dacă m = n şi ap < cp unde p = max {i | ai  ci}, atunci
c – a = (cp – ap) bp + (cp-1bp-1 +...+ c0) - (ap-1bp-1 +...+ a0) >
>bp + (cp-1bp-1 +...+ c0) - bp  0.
Deci, a < c.

Observaţie Teorema anterioară ne oferă o metodă de comparare a numerelor naturale scrise


în baza b. Dacă dorim să comparăm două numere întregi, nu neapărat pozitive, pot apărea 3
cazuri:

1. Amândouă sunt pozitive. În acest caz se aplică teorema anterioară.


2. Unul este negativ şi celălalt pozitiv. Evident, numărul negativ este mai mic decât
cel pozitiv.
3. Amândouă sunt negative: a, c < 0. În acest caz a > c dacă şi numai dacă -a < -c.

Exemple
101011(2) > 11111(2)
AB56(16) > A9FF(16)
-1230(5) > -2121(5) pentru că 1230(5) < 2121(5).

M1.U2.4. Adunarea numerelor în baza b

Fie bN, b > 1 şi fie a şi c două numere naturale scrise în baza b, a = amam-1...a1a0(b),
c = cncn-1...c1c0(b). Dorim să determinăm suma s = a + c.
Avem a = a0 + a1b + a2b2 + ... + ambm şi c = c0 + c1b + c2b2 + ... + cnbn.
Deoarece a0 < b şi c0 < b, rezultă că a0 +c0 < 2b sau, echivalent,
a0 +c0 = r1b + s0,
unde 0  s0 <b, iar r1 este 0 sau 1 şi se numeşte transport.
Mai exact,
dacă a0 +c0 < b atunci s0 = a0 +c0 şi r1 = 0
dacă a0 +c0  b atunci s0 = a0 +c0 – b şi r1 = 1.
Deci,
s = a + c = s0 + (a1 + c1 + r1)b + (a2 + c2)b2 + ....
Evident că
a1 + c1 + r1 < 2b.

12
Deci,
a1 + c1 + r1 = r2b + s1,
unde 0  s1 <b, iar transportul r2 este 0 sau 1.
În acelaşi fel, determinăm toate cifrele sumei s:
si = (ai + ci + ri )%b,  i  0,
unde r0 = 0,

0, daca ai-1  ci-1  ri-1  b
ri =  ,  i > 0.
1, altfel

Observaţie 1) Dacă adunăm două numere naturale a şi c, fiecare având (m +1) cifre, suma
s = a + c poate avea:
(m +1) cifre dacă am + cm + rm < b sau
(m + 2) cifre dacă am + cm + rm  b. În acest caz sm+1 = 1.
2) Dacă cele două numere naturale a şi c un un număr diferit de cifre atunci:
dacă m > n considerăm cn+1 = cn+2 = ...= cm= 0
dacă m < n considerăm am+1 = am+2 = ...= an= 0.

Algoritm adunare;
begin
read b, m, am, am-1, ..., a0, n, cn, cn-1, ..., c0;
if m > n then
for i = n +1 to m do ci= 0;
else
if m < n then begin
for i = m +1 to n do ai= 0;
m ← n;
end;
r ← 0;
for i = 0 to m do begin
si ← (ai + ci + r)%b;
r ← (ai + ci + r)/b;
end;
if r = 1 then
write 1, sm, sm-1, ... , s0;
else
write sm, sm-1, ... , s0;
end.

Exemple
'''' '' ' '
101011(2) + 12345(8) + A1B2C(16) +
111(2) 34274(8) 26F54(16)
110010(2) 46641(8) C8A80(16)

13
Efectuaţi următoarele adunări:
101011(2) + 11111(2)
AB56(16) + A9FF(16)
1230(5) + 2121(5).

M1.U2.5. Scăderea numerelor în baza b

Fie bN, b > 1 şi fie a şi c două numere naturale scrise în baza b, a = amam-1...a1a0(b) ,
c = cncn-1...c1c0(b), cu a ≥ c. Dorim să determinăm diferenţa d = a - c.
Se efectuează scăderi în baza 16 atunci când se lucrează direct cu conţinutul locaţiilor
de memorie. Există aplicaţii practice în care trebuie să scădem o adresă de memorie dintr-o
altă adresă de memorie mai mare.

Algoritm scadere;
begin
read b, m, am, am-1, ..., a0, n, cn, cn-1, ..., c0;
if m > n then
for i = n +1 to m do ci= 0;
for i = 0 to m do
if ai  ci then
di ← ai - ci ;
else
begin
se împrumută 1 de la ai+1; // ai+1 = ai+1 - 1;
di ← b + ai - ci;
end;
while dm = 0 și m >0 do
m ← m – 1;
write dm, dm-1, ... , d0;
end.

Exemple
' ' '
101011(2) - 72345(8) - A4EC(16) -
111(2) 34274(8) 34B4(16)
100100(2) 36051(8) 7038(16)

14
Efectuaţi următoarele scăderi:
101011(2) - 1111(2)
AB56(16) - A9FF(16)
1230(5) - 221(5).

M1.U2.6. Înmulţirea numerelor în baza b

Înmulţirea a două numbere a şi c în baza b constă în următoarele operaţii:


1. Înmulţirea numărului a cu puteri ale bazei b
2. Înmulţirea numărului a cu cifre ale numărului c
3. Adunări de numere naturale.

Înmulţirea numărului a cu o putere a bazei b

Fie a = amam-1...a1a0(b).
Atunci abj = ( a0 + a1b + a2b2 + ... + ambm)  bj = a0 bj + a1 bj+1 + a2 bj+2 + ... + ambm+j
= am am 1...a0 00
...
0 .
j ori

Înmulţirea numărului a cu o cifră a numărului c

Fie a = amam-1...a1a0(b) = a0 + a1b + a2b2 + ... + ambm şi cj o cifră oarecare a numărului


c.
Deoarece ai < b pentru orice i = 0, ..., m şi cj < b, rezultă că ai cj < b2. Din Teorema
împărţirii cu rest rezultă că există câtul unic q(ai, cj) şi restul unic r(ai, cj) astfel încât:
ai cj = b  q(ai, cj) + r(ai, cj),
unde 0  r(ai, cj) <b şi 0  q(ai, cj) <b.
m m m
Deci acj =  ai  c j  bi =
i 0
 (b  q(ai , c j )  r (ai , c j ))  bi =
i 0
 q(a , c )b
i 0
i j
i 1
+
m

 r (a , c )b .
i 0
i j
i

Exemple
101011(2)  123(5) 123(8)
101(2) 24(5) 24(8)
---------------- ------- -------
101011 1102 514
101011 301 246
---------------- ------- -------
11010111(2) 4112(5) 3174(8)

15
Efectuaţi următoarele înmulţiri:
101011(2) - 1111(2)
AB56(16) - A9FF(16)
1230(5) - 221(5).

Observaţie Împărţirea a două numere în baza b constă în operaţii deja studiate: adunări,
scăderi şi înmulţiri.

Exemplu
2144(5) | 12(5) 1100101(2) | 101(2)
12 |132 101 |10100
44 10
41 0
34 101
24 101
10 0
0
Deci 2144(5) = 12(5) 132(5)+ 10(5). 1
0
1

Deci 1100101(2) = 101(5) 10100(2)+ 1(2).

Efectuaţi următoarele împărţiri:


101011(2) : 11(2)
1230(5) : 21(5)
A085(16) : 1B(16).

M1.U2.7. Rezumat
Sistemul de numeraţie pe care îl folosim în marea majoritate a timpului este cel
zecimal, însă uneori este necesar să efectuăm calcule şi în alte baze. În acestă unitate
de învăţare am arătat cum se efectuează adunările, scăderile, înmulţirile şi împărţirile
într-o bază oarecare b, b>1. De asemenea, am văzut cum pot fi comparate două
numere scrise în baza b, b>1. Ceea ce a putut fi observat cu uşurinţă este faptul că,
indiferent de baza în care lucrăm, aplicăm acelaşi algoritm de adunare, de scădere,
de înmulţire sau de împărţire.

16
M1.U2.8. Test de evaluare a cunoştinţelor
Efectuaţi următoarele operaţii:
110111(2) + 1011(2)
110111(2) - 1011(2)
110111(2) * 101(2)
110111(2) : 11(2)
A1B5F(16) + A9F22F(16)
A1B5F(16) – BCD1(16)
A1B(16) * A2F(16)
A1B5F(16) : 1A2(16).

17
Unitatea de învăţare M1.U3. Schimbarea bazei

Cuprins
M1.U3.1. Introducere .................................................................................................... 18
M1.U3.2. Obiectivele unităţii de învăţare ..................................................................... 19
M1.U3.3. Metoda substituţiei cu calcule în noua bază ................................................. 19
M1.U3.4. Metoda substituţiei cu calcule în vechea bază .............................................. 20
M1.U3.5. Metoda substituţiei cu calcule într-o bază intermediară ............................... 22
M1.U3.6. Rezumat ........................................................................................................ 23
M1.U3.7. Test de evaluare a cunoştinţelor ................................................................... 23

M1.U3.1. Introducere
Atunci când se lucrează cu mai multe sisteme de numeraţie, apare şi necesitatea de
a efectua conversii între diferite baze.
Fie N un număr în baza b, care poate fi dat în oricare din următoarele trei
forme echivalente:
N  a n a n-1...a1a 0 . a -1a - 2 ...a -m
    
partea intreaga partea fractionala
N = anbn + an-1bn-1 + ...+ a1b + a0 + a-1b-1 + ... + a-mb-m
n
N a b
i m
i
i

Spunem că an este cea mai semnificativă cifră a numărului N şi că a-m este cea
mai puţin semnificativă cifră a numărului N.

Observaţie Dacă m = 0 atunci N este un număr întreg.

Fie N un număr în baza b, N = anbn + an-1bn-1 + ...+ a1b + a0 + a-1b-1 + ... +


-m
a-mb .
Îl vom transforma pe N din baza b în baza h. Există mai multe metode de efectuare
a acestei transformări:
1. Metoda substituţiei cu calcule în baza h
2. Metoda substituţiei cu calcule în baza b
3. Metoda substituţiei cu calcule într-o bază intermediară g.

18
M1.U3.2. Obiectivele unităţii de învăţare
Această unitate de învăţare îşi propune ca obiectiv principal însuşirea de către
studenţi a capacităţii de a efectua conversii între diferite baze.
La sfârşitul acestei unităţi de învăţare studenţii vor fi capabili să:
 Să treacă un număr natural dintr-o bază în alta;
 Să treacă un număr raţional dintr-o bază în alta.

Durata medie de parcurgere a acestei unităţi de învăţare este de 3 ore.

M1.U3.3. Metoda substituţiei cu calculele în noua bază

Această metodă constă în scrierea fiecărei cifre ai a numărului N şi a bazei b în noua bază
h. Toate calculele vor fi făcute în noua bază, h.
Vom efectua următoarele conversii:
ai(b) = ci(h) , i, -m  i  n
10(b) = x(h).
Deci, N(b) = (cnxn + cn-1xn-1 + ...+ c1x + c0 + c-1x-1 + ... + c-mx-m)(h).

Exemplu
Pentru trecerea numărului 234(5) din baza 5 în baza 2, vom scrie fiecare cifră a
numărului şi baza 5 în baza 2:
2(5) = 10(2), 3(5) = 11(2), 4(5) = 100(2), 10(5) = 101(2).
Deci, 234(5) = (2*52 + 3*5 + 4)(10) = (10*1012 + 11*101 + 100)(2) =
(10*11001+1111+100)(2) = (110010+1111+100)(2) = 1000101(2).

Caz particular
Dacă b = hk fiecare cifră a numărului scris în baza b va transformată într-un număr în baza
h cu k cifre. Apoi aceste numere în baza h sunt juxtapuse.

Exemplu
Pentru trecerea numărului 5436(8) din baza 8 în baza 2, vom scrie fiecare cifră a
numărului dat în baza 2 pe 3 poziţii, deoarece 8 = 23:
5(8) = 101(2) , 4(8) = 100(2) , 3(8) = 011(2) , 6(8) = 110(2).
Deci, 5436(8) = 101100011110(2).

19
Exemplu
Pentru trecerea numărului A5F.61(16) din baza 16 în baza 2, vom scrie fiecare
cifră a numărului hexazecimal în baza 2 pe 4 poziţii, iar apoi le vom concatena.
A(16) = 1010(2) , 5(16) = 0101(2) , F(16) = 1111(2) , 6(16) = 0110(2) , 1(16) = 0001(2).
Deci, A5F.61(16) = 101001011111.01100001(2).

Efectuaţi următoarele conversii:


101011(2) = ?(10)
1230(5) = ? (2)
A085(16) = ? (4)
A085(16) = ? (2).

M1.U3.4. Metoda substituţiei cu calculele în vechea bază (metoda


împărţirii/înmulţirii bazei)

Metoda substituţiei cu calculele în vechea bază se mai numeşte şi metoda


împărţirii/înmulţirii bazei. Această metodă este folosită de calculatoare pentru afişarea
rezultatelor, baza iniţială fiind 2, iar noua bază fiind 10, de obicei.
Fie N(b) = anan-1...a1a0.a-1...a-m(b)= [N](b) + {N}(b),
unde [N](b) este partea întreagă a lui N(b), iar {N}(b) este partea sa fracţionară.
Pentru transformarea părţii întregi [N](b) din baza b în baza h, vom folosi Teorema
sistemelor de numeraţie. Partea întreagă a lui N(b), [N](b), poate fi scrisă în forma:
[N](b) = cn'hn' + cn'-1hn'-1 + ...+ c1h + c0,
unde nu se cunosc cifrele cn', cn'-1, ...,c1, c0, dar pot fi determinate prin împărţiri succesive la h.
[ N ]( b )  (cn 'h n '1  cn '-1h n '2  ...  c1 )h  c0 . De aici putem determina c0, care este

[ N 1 ]( b )

restul într-o împărţire a două numere întregi,


[ N1 ](b )  (cn 'h n '2  cn '-1h n '3  ...  c2 )h  c1 , deci putem determina c1,

[ N 2 ]( b )

.....
[Nn'](b) = cn', deci putem determina cn'.

În continuare vom trece partea fracţională {N}(b) a lui N din baza b în baza h. Putem
scrie {N}(b) în forma
{N}(b) = c-1h-1 + c-2h-2 +... + c-m'h-m',
unde nu se cunosc cifrele c-1, c-2,...,c-m', dar pot fi determinate prin înmulţiri succesive cu h.
{N }(b ) h  c1  c 2 h 1  c-3h 2  ...  c m 'h  m ' 1 , deci putem determina c-1,
 
{ N 1 }( b )

{N1}(b ) h  c 2  c 3h  ...  c m 'h  m '2 , deci putem determina c-2,


1

{ N 2 }( b )

....
{N m '1}( b ) h  c m ' , deci putem determina c-m'.

20
Deci, am obţinut că N(b) = anan-1...a1a0.a-1...a-m(b) = cn'cn'-1...c1c0.c-1...c-m'(h).

Exemplu
Trecerea din baza 10 în baza 8 a numărului 234.128(10), efectuând calculele în
vechea bază, adică în baza 10.
Pentru transformarea părţii întregi, efectuăm împărţiri succesive la 8 şi reţinem
resturile în ordinea inversă ordinii în care au fost obţinute:
234 = 29* 8 + 2, rezultă că c0 = 2.
29 = 3*8 + 5, deci c1 = 5.
3 = 0* 8 + 3, deci c2 = 3.
Deci partea întreagă a numărului dat, 234(10), este 352(8).

Pentru transformarea părţii fracţionare, efectuăm înmulţiri succesive cu 8 şi


reţinem părţile întregi ale produselor în ordinea în care au fost obţinute:
0.128*8 = 1.024, rezultă că c-1 = 1.
0.024*8 = 0.192, deci c-2 = 0.
0.192*8 = 1.536, deci c-3 = 1.
Deci, am obţinut că, 0.128(10) = 0.101(8) şi 234.128(10) = 352.101(8).

Exemplu
Trecerea din baza 5 în baza 2 a numărului 234.21(5), efectuând calculele în
vechea bază, adică în baza 5.
Pentru transformarea părţii întregi, efectuăm împărţiri succesive la 2, efectuând
calculele în baza 5, şi reţinem resturile în ordinea inversă ordinii în care au fost
obţinute:
234(5) = 114(5)* 2(5) + 1(5), rezultă că c0 = 1.
114(5) = 32(5)*2(5) + 0(5), deci c1 = 0.
32(5) = 13(5)* 2(5) + 1(5), deci c2 = 1.
13(5) = 4(5)* 2(5) + 0(5), rezultă că c3 = 0.
4(5) = 2(5)*2(5) + 0(5), deci c4 = 0.
2(5) = 1(5)* 2(5) + 0(5), deci c5 = 0.
1(5) = 0(5)* 2(5) + 1(5), deci c6 = 1.
Deci partea întreagă a numărului dat, 234(5), este 1000101(2).

Pentru transformarea părţii fracţionare, efectuăm înmulţiri succesive cu 2,


efectuând calculele în baza 5, şi reţinem părţile întregi ale produselor în ordinea
în care au fost obţinute:
0.21(5)*2(5) = 0.42(5), rezultă că c-1 = 0.
0.42(5)*2(5) = 1.34(5), rezultă că c-2 = 1.
0.34(5)*2(5) = 1.23(5), rezultă că c-3 = 1.
Deci, am obţinut că, 0.21(5) = 0.011(2) şi 234.21(5) = 1000101.011(2).

21
Caz particular
Dacă h = bk atunci, pornind de la virgulă către stânga şi către dreapta (dacă numărul are şi
parte fracţionară), se formează grupe de câte k cifre. Dacă este necesar, se adaugă zerouri
nesemnificative la partea fracţionară astfel încât grupele din dreapta virgulei să aibă toate
exact k cifre. Fiecare grup se transformă apoi într-o cifră în baza h. În final, juxtapunem
ciferele obţinute în baza h.

Exemple
1) Pentru transformarea numărului binar 1101110111001(2) într-un număr în baza
8, vom grupa biţii numărului binar câte 3 de la dreapta la stânga deoarece
numărul este întreg, iar 8 = 23:
1
101110
111001 = 001101110111001 .

Apoi transformăm fiecare grup de 3 biţi în cifra corespunzătoare lor din
baza 8:
001(2) = 1(8) , 101(2) = 5(8) , 110(2) = 6(8) , 111(2) = 7(8).
Deci, 1101110111001(2) = 15671(8).

2) Pentru transformarea numărului binar 10011111.11001(2) într-un număr în


baza 16, vom grupa biţii numărului binar câte 4 pornind de la punct către stânga
şi către dreapta deoarece 16 = 24:
1001
1111 1 = 1001
.1100 1111
.1100
 1000

Apoi transformăm fiecare grup de 4 biţi într-o cifră din baza 16:
1001(2) = 9(16), 1111(2) = F(16) , 1101(2) = D(16) , 1000(2) = 8(16).
deci, 10011111.11001(2) = 9F.D8(16).

M1.U3.5. Metoda substituţiei cu calculele într-o bază intermediară

În general, această metodă este folosită atunci când, folosind creionul şi hârtia, trebuie să
transformăm un număr din baza b în baza h, cu b, h  10. Deoarece suntem familiarizaţi cu
aritmetica în baza 10, preferăm să facem toate calculele în baza 10. Deci, vom folosi baza 10
ca bază intermediară.
Metoda substituţiei cu calcule într-o bază intermediară constă în:
1. Transformarea numărului din baza b în baza g, efectuând calculele în baza g, urmată
de
2. Transformarea numărului obţinut din baza g în baza h, efectuând calculele în baza g.

Exemplu
Pentru a transforma numărul 111442(5) în baza 8, vom folosi baza 10 ca bază
intermediară. Mai întâi transformăm numărul 111442(5) în baza 10 astfel:
111442(5) = (1*55 + 1*54 +1*53 +4*52 +4*51 +2*50)(10) = 3997(10).

22
Apoi, transformăm numărul 3997(10) în baza 8:
3997 = 499*8 + 5
499 = 62*8 + 3
62 = 7*8 + 6
7 = 0*8 + 7
Deci, 3997(10) = 7635(8) şi 111442(5) = 7635(8).

Exemplu
Pentru a transforma numărul 208.7(9) în baza 7, vom folosi baza 10 ca bază
intermediară. Mai întâi transformăm numărul 208.7(9) în baza 10 astfel:
208.7(9) = (2*92 + 0*91 + 8*90 + 7*9-1)(10) = 170.077(10).

Apoi, transformăm numărul 170.077(10) în baza 7:


Pentru transformarea părţii întregi, efectuăm împărţiri succesive la 7,
efectuând calculele în baza 10, şi reţinem resturile în ordinea inversă ordinii în
care au fost obţinute:
170(10) = 24(10)* 7(10) + 2(10), rezultă că c0 = 2.
24(10) = 3(10)*7(10) + 3(10), deci c1 = 3.
3(10) = 0(10)* 7(10) + 3(10), deci c2 = 3.
Deci partea întreagă a numărului, 170(10), este 332(7).

Pentru transformarea părţii fracţionare, efectuăm înmulţiri succesive cu 7,


efectuând calculele în baza 10, şi reţinem părţile întregi ale produselor în ordinea
în care au fost obţinute:
0.077(10)*7(10) = 0.539(10), rezultă că c-1 = 0.
0.539(10)*7(10) = 3.773(10), rezultă că c-2 = 3.
0.773(10)*7(10) = 5.511(10), rezultă că c-3 = 5.
Deci, am obţinut că, 0.077(10) = 0.035(7) şi 170.077(10) = 332.035(7). În consecinţă,
208.7(9) = 332.035(7).

M1.U3.6. Rezumat
Atunci când lucrăm în mai multe sisteme de numeraţie, apare şi necesitatea de a
efectua conversii între diferite baze. În acestă unitate de învăţare, am prezentat trei
metode generale de trecere a unui număr oarecare N = anan-1... a1a0.a-1... a-m din baza
b în baza h:
1. Metoda substituţiei cu calcule în baza h
2. Metoda substituţiei cu calcule în baza b
3. Metoda substituţiei cu calcule într-o bază intermediară g.
De asemenea, am arătat că cele mai rapide conversii se pot face între baze care sunt
puteri ale aceluiaşi număr.

M1.U3.7. Test de evaluare a cunoştinţelor


Efectuaţi următoarele conversii:
1485.4(10) = ? (2)

23
110111(2) = ?(10)
110111(2) = ?(8)
110111(2) =? (16)
A1B5F(16) =?(10)
A1B(16) =?(5)
A1B(16) = ?(4)
10101.1(2) = ?(8)
10101.1(2) = ?(16)
1230(5) = ?(2)
A085(16) = ?(8).

24

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