Sunteți pe pagina 1din 19

Bazele aritmetice i logice ale sistemelor de calcul

BAZELE ARITMETICE I LOGICE ALE


SISTEMELOR DE CALCUL

1. Reprezentarea informaiilor n calculator


Informaia - este o formul care poate fi scris sau simbolizat, avnd ca scop de a
aduce o cunotin (a informa). Putem spune c informaia este un mesaj despre anumite
lucruri sau evenimente care au avut, au sau vor avea loc. Transmiterea i prelucrarea
informaiilor n forma lor uzual creeaz dificulti, de aceea este necesar codificarea lor.
ntr-un calculator electronic datele sunt reprezentate utiliznd doar cifrele 0 i 1, adic
sistemul binar.

1.1. Sisteme de numeraie


Sistemul de numeraie este totalitatea regulilor de reprezentare a numerelor prin
intermediul unor simboluri (cifre i litere).
Sistemele de numeraie pot s fie de dou feluri: poziionale (ex. sistemul zecimal) sau
nepoziionale ( de exemplu sistemul roman).
n sistemele de calcul se utilizeaz sistemele de numeraie poziionale. Un sistem de
numeraie poziional este un sistem de numeraie n care valoarea unei cifre depinde de
poziia sa n cadrul numrului.
Un sistem de numeraie poziional este caracterizat printr-o baz de numeraie care
reprezint numrul total de simboluri folosite.
Exemple de sisteme de numeraie poziionale:

sistemul zecimal este un sistem de numeraie n baza 10 pentru care numrul de


simboluri utilizate n scriere a unui numr este 10, aceste simboluri fiind cifrele
0, 1, 2, , 9.

sistemul binar este un sistem de numeraie n baza 2 pentru care numrul de


simboluri utilizate este 2, acestea fiind 0 i 1.

sistemul hexazecimal este un sistem de numeraie n baza 16 i utilizeaz


simbolurile 0, 1, , 9, A, B, C, D, E, F.

Bazele aritmetice i logice ale sistemelor de calcul

Sistemele de calcul lucreaz cu un numr de stri distincte i stabile, egal cu numrul


de cifre caracteristice sistemului de numeraie utilizat. Se prefer un numr de stri stabile ct
mai mic, de tipul nchis-deschis aprnd necesitatea utilizrii sistemului binar i al
derivatelor sale (octal, hexazecimal) care ofer compatibilitatea de putere a bazelor (23 =8, 24
= 16). Rezult c un sistem de numeraie este caracterizat printr-o baz b i un set de b
simboluri 0 ,1,..., b 1 . Notm: Bk b 0 b k un sistem de numeraie.

1.2. Conversia numerelor ntregi


Un numr oarecare x se scrie ntr-o baz b oarecare sub forma:

xb a n b n a n1 b n1 ... a1 b 1 a0 b 0 ,
unde a0, a1,, an Bb reprezint simboluri din baza de numeraie b.
Numrul se reprezint astfel:
xb a n a n- 1 ...a1 a0 .

Conversia unui numr ntreg x din baza 10 ntr-o baz b oarecare se face prin mpriri
succesive de forma:
x b q0 r0 ,

0 r0 b,

x q0 ,

q0 b q1 r1 ,
0 r1 b,
q0 q1 ,

qn- 1 b qn rn ,
0 rn b,
qn- 1 qn ,

qn 0 ,

sau:
x

q0

q1

qn-1

r0

r1

r2

rn

qn = 0

Numrul n baza b se scrie: x rn rn1 ...r1 r0 .


Deci, regula de conversie a unui numr ntreg din baza 10 ntr-o baz oarecare b este
urmtoarea: se mparte la baza b numrul i cturile obinute dup fiecare mprire, pn se
obine ctul zero; rezultatul conversiei numrului este constituit din resturile obinute, n
ordine invers obinerii lor.
Exemplul 1 : S se transforme numrul 89 din baza 10 n bazele 2,8 i 16.
Pentru transformarea n baza 2 se procedeaz n felul urmtor:
89 = 44 x 2+1
44 = 22 x 2+0
89 44 22 11 5 2 1
22 = 11 x 2+0
sau
1 0 0 1 1 0 1
11 = 5 x 2+1
2 = 1 x 2+0
1 = 0 x 2+1

Bazele aritmetice i logice ale sistemelor de calcul


89 2
88
44
1 44 2
22 2
0 22 11
2
0 10 5
1 4

deci

2
2

2 1 2
0 0
0
1

8910 = 10110012
Pentru transformare n baza 8, avem:
89 11 1 0
1

3 1

deci

8910 =1318

deci

8910 =5916

Pentru transformarea n baza 16 vom avea:


89

Exemplul 2 : S se transforme numrul 1259 din baza 10 n baza 16.


1259 78 4
11

14 4

deci

125910 = 4EB16

Pentru a realiza transformarea invers, din baza b n baza 10, se dezvolt numrul dup
puterile bazei b i se efectueaz calculele n zecimal.
Exemplul 3 : S se realizeze transformrile inverse ale numerelor obinute anterior
din bazele 2, 8 i 16 n baza 10.
1011001(2) = 1 26 + 0 25 + 1 24 + 1 23 +0 22 +0 21 +1 20 = 64 + 16 + 8 + 1 = 89(10)
131(8) = 1 82 + 3 81 + 1 80 = 64 + 24 +1 = 89(10)
59(6) = 5 161 + 9 160 = 89(10)
4EB(16) = 4 162 + 14 161 + 11 160 = 1024 + 224 +11 = 1259(10)

Bazele aritmetice i logice ale sistemelor de calcul

4
OBSERVAII:

Conversia unui numr ntreg dintr-o baz b1 ntr-o baz b2 (b1 10 i b2 10) se face
prin intermediul bazei 10. Excepie de la aceast regul pot face bazele care sunt puteri ale
bazei 2, pentru care se pot face i conversii direct (din baza 2 n baza 8 sau 16 i respectiv
invers). Acest lucru este posibil deoarece 8 i 16 fiind puteri ale lui 2 (8 = 23, 16 = 24)
corespondena dintre bazele de numeraie 2 i 8, respectiv 2 i 16 se face pe baza urmtoarelor
tabele:
Tabelul 1.

x8

x2

0
1
2
3
4
5
6
7

000
001
010
011
100
101
110
111

Tabelul 2.

x16
0
1
2
3
4
5
6
7

x2

x16

x2

0000
0001
0010
0011
0100
0101
0110
0111

8
9
A
B
C
D
E
F

1000
1001
1010
1011
1100
1101
1110
1111

Unei cifre din baza 8 i corespund 3 cifre binare, iar unei cifre din baza 16 i corespund
4 cifre binare. Pentru a realiza transformri directe din baza 2 n bazele 8 sau 16 se formeaz
grupuri de cte 3, respectiv 4 cifre binare pornind de la dreapta spre stnga. Fiecrui grup de
cifre binare astfel constituite i corespunde o cifr octal sau hexazecimal.
Fie numrul n baza 2: 100.111.011(2). Prin transformare direct obinem:
101 111 011 = 573(8)
O explicaie i mai clar (intuitiv) se poate obine n felul urmtor:
101111011(2) = 1 28 + 0 27 + 1 26 + 1 25 +1 24 +1 23 +0 22 +1 21 +1 20 = (1 22 +
0 21 + 1 20) 26 + (1 22 + 1 21 + 1 20) 23 + (0 22 + 1 21 + 1 20) 20 = 5 82 + 7 81 + 3 80
= 573(8)

1.3 Conversia numerelor reale


Un numr real oarecare x 0 se scrie ntr-o baz oarecare b n forma:

xb a n b n a n1 b n1 ... a1 b 1 a0 b 0 a 1 b 1 ... a m b m ,
unde an , an-1,, a0, a-1, a-2,, a-m Bb i se reprezint astfel:
xb = an an-1 a-1 a0 a-1a-2 a-m.
Se tie c orice numr x R+ se poate scrie sub forma:

x x x, cu 0 x 1 ,

unde prin [x] s-a notat partea ntreag a lui x, iar prin xs-a notat partea fracionar a lui x.

Bazele aritmetice i logice ale sistemelor de calcul

Conversia unui numr real x R+ din baza 10 ntr-o baz oarecare b se face separat
pentru partea ntreag i partea fracionar.
Conversia prii fracionare n baza b se obine prin nmuliri repetate, dup cum
urmeaz:

b x x1 r1 x1 , 0 r1 b

b x1 x 2 r2 x 2 , 0 r2 b

b x n1 x n rn x n , 0 rn b .

Se obine apoi:

x b 1 r1 b 2 r2 ... b n rn ...
xb r1r2 ...rn ...

deci

Observaie: n urma acestor nmuliri repetate, pot apare trei situaii:

x n 0 , ceea ce nseamn c procedeul nu mai poate continua i partea fracionar

xse poate reprezenta n baza b prin exact cele n cifre r1 r2 ...rn ;


x n 0 , dar se observ o periodicitate, adic una sau un grup de cifre care se repet.
x n 0 , iar cifrele se succed fr nici o regul, ceea ce nseamn c xse poate
reprezenta aproximativ n baza b, pstrnd primele n cifre obinute.
Prescurtat, putem scrie astfel:
x

x1

x2

xn

r-1

r-2

r-n

Exemple:
1. S se transforme numrul x = 0,125 n baza 2.

0
0
1
1
1
0
0
1
1
0

0
0
0
1

125x2
250x2
500x2
000

3
4
45x2
5
90x2
6
80x2
7
60x2

011
100
101
110
111

20x2
40x2
80x2
60x2
20x2
40x2

0,125 0,250 0,500 1,000


sau

0,125(10) = 0,001(2)
0
0
1
1
0001
9
1001
0010 A
2
1010
3
0011
B
1011
2. S se transforme numrul x = 0,45 n baza 2.
0100
4
C
1100
5
0101 D
1101
0110
6
E
1110
0,45 0,90 0,80
0,60 0,20F 0,40
0,80 0,60 0,20 0,40
7
0111
1111
0

sau
deci

0,45(10) = 0,01110011001(2) = 0,01(1100) (2)

Bazele aritmetice i logice ale sistemelor de calcul

Se observ c la partea fracionar s-a obinut perioada 1100, deci numrul 0,45 nu
poate fi scris n baza 2 printr-un numr finit de cifre fracionare.
3. S se transforme numrul 0,48(10) n baza 2.
Se observ c numrul 0,48 nu poate fi scris n baza 2 nici
0
48x2
ca numr periodic, ca n exemplu precedent, i nici cu un numr
finit de cifre fracionare. El se poate reprezenta numai
0
96x2
1
92x2
aproximativ n baza 2.
1
84x2
1
68x2
1
36x2
0
72x2
1
44x2
0
88x2
1
76x2
1
52x2
1
04x2
0
08x2
0
16x2
0
32x2
0
64x2

1.4 Operaii aritmetice cu numere n diferite baze de numeraie


Regulile dup care se efectueaz operaiile aritmetice n sistemele binar, octal i
hexazecimal se construiesc prin analogie cu cele dup care se opereaz n sistemul zecimal.
Evident, se ine seama de numrul de simboluri utilizate n fiecare sistem de numeraie n
parte.
Dintre operaiile aritmetice n diferite baze de numeraie nu vom studia dect operaia
de adunare.
a) Adunarea n binar se face dup regulile din tabelul 3.
Tabelul 3.
+

10

Bazele aritmetice i logice ale sistemelor de calcul

b) Adunarea n octal se face dup regulile din tabelul 4.


Tabelul 4.

10

10

11

10

11

12

10

11

12

13

10

11

12

13

14

10

11

12

13

14

15

10

11

12

13

14

15

16

c) Adunarea n hexazecimal se face dup regulile din tabelul 5.


Tabelul 5.
+

10

10

11

10

11

12

10

11

12

13

10

11

12

13

14

10

11

12

13

14

15

10

11

12

13

14

15

16

10

11

12

13

14

15

16

17

10

11

12

13

14

15

16

17

18

10

11

12

13

14

15

16

17

18

19

10

11

12

13

14

15

16

17

18

19

1A

10

11

12

13

14

15

16

17

18

19

1A

1B

10

11

12

13

14

15

16

17

18

19

1A

1B

1C

10

11

12

13

14

15

16

17

18

19

1A

1B

1C

1D

10

11

12

13

14

15

16

17

18

19

1A

1B

1C

1D

1E

Exemple de adunri n cele 3 sisteme de numeraie:


1. S se adune numerele : (11101,101)2 i (01001,010)2
11101,101 +
01001,010
100110,111

8
Bazele aritmetice i logice ale sistemelor de calcul
2. S se adune numerele (163,432)8 i (34,613)8
163,432 +
034,613
220,245
3. S se adune numerele (6FB4)H i (12C3)H
6FB4 +
12C3
8277

2. Codificarea informaiei
Ca parte integrat a prelucrrii informaiilor cu ajutorul calculatorului, codificarea
urmrete transpunerea informaiei din forma ei primar ntr-o form accesibil calculatorului.
Mecanismul codificrii trebuie s fie simplu, astfel nct s poat fi automatizat eficient.

2.1. Definirea codului


Se poate crea un model matematic cuprinztor i general al procesului de codificare.
Notm prin:

S s1 ,s 2 ,...,s p

mulimea simbolurilor primare de informaie. Dup caz, S poate fi mulimea caracterelor ce


se pot tipri, o mulime de cuvinte dintr-un anumit limbaj sau dintr-o limb, o submulime
finit de numere, etc. Notm prin:

A a1 , a 2 ,..., a p

un alfabet al codificrii, n care elementele ai le vom numi litere. Cu ajutorul literelor


alfabetului A, elementele mulimii S, vor fi reprezentate ntr-o nou form, forma codificat.
Vom nota prin An mulimea tuturor cuvintelor de lungime n formate cu litere din A. Deci:

A n w w a i 1a i 2 a i 3 ...a in , a ij A, j 1, n .
Prin A+ vom nota mulimea tuturor cuvintelor ce se pot forma cu litere din A. Deci:
A A A2 A3 ... An ...

Definiie: O aplicaie

injectiv

C : S A , se numete codificare a simbolurilor din S,

sau mai simplu cod.


Un cod pentru care toate cuvintele de cod au aceeai lungime n se numete uniform,
iar n se numete lungimea codului. n acest caz avem
C : S An .

Codurile care nu sunt uniforme se numesc coduri neuniforme.

Bazele aritmetice i logice ale sistemelor de calcul

Exemplu de cod
n paragraful precedent am stabilit o coresponden ntre cifrele zecimale i
reprezentarea lor binar. n acest caz avem de-a face cu un cod uniform, n care:

C 0 0000 , C 1 0001, C 2 0010 , ...C 9 1001.

Acest cod poart numele de cod BCD (Binary Code Decimal).

2.2. Codificarea caracterelor


Fie S a, b,...,z, A, B,...,Z ,,...,$,... mulimea caracterelor tipribile existente. Pentru
codificarea acestor caractere n vederea prelucrrii lor automate, standardele internaionale
impune o serie de restricii. Dup cum se va vedea, aceste restricii sunt foarte utile n
prelucrarea automat a datelor.
Considerm mulimile:

l a , b ,..., z,
s

L A, B ,..., Z ,

c 0 ,1,...,9,

, , ,...,$,... - mulimea caracterelor speciale;

f CR,LF,TAB, BS,... - mulimea caracterelor funcionale, care nu apar la


tiprire, ci doar controleaz tiprirea.
Vom nota
S l Lc s f .

funcia de codificare se definete astfel:

C:S 0 ,n,

unde n este 127 sau 255. Dac considerm reprezentarea binar avem de-a face cu un cod
omogen pe 7 sau 8 bii.

127 2

1 1111111, iar 255 2 8 1 11111111 .

Standardele de codificare impun urmtoarele condiii:

x f C x C

x S f C x C

C a C b ...C z

C A C B ...C Z
C 1 C 0 1...C 9 C 8 1

Intervalele:

C a ,C z
C A, C Z
C 0 ,C 9

i mulimea C(s) au interseciile vide 2 cte 2.

Bazele aritmetice i logice ale sistemelor de calcul


Un prim sistem de codificare stabilit a fost EBCDIC (Extended Binary Decimal
Interchange Code), care folosete pentru codificare numerele ntregi din intervalul [0,255].
10

Calculatoarele medii i mari, precum i cele mai vechi folosesc acest cod de reprezentare.
n prezent, cel mai folosit sistem de codificare este ASCII (American Standard Code
for Information Interchange) care folosete pentru codificare numerele ntregi din intervalul
[0,127]. Fa de condiiile de mai sus, acest cod mai verific relaiile:

C z C a 25
C Z C A 25 .

Proiectanii calculatoarelor din familia IBM-PC au extins codificarea ASCII,


codificnd o palet larg de caractere grafice, litere ale alfabetului grec, cteva simboluri
matematice, etc. n acest scop s-au folosit numere din intervalul 128255. Avem de-a face,
astfel, cu un cod omogen pe 8 bii.
Necesitile actuale de comunicare cu ajutorul calculatorului au impus din ce n ce mai
mult un nou sistem de codificare, de data aceasta un cod omogen pe 16 bii. Este vorba de
sistemul UNICODE, care include practic toate simbolurile tipribile ale limbilor de pe glob,
precum i o foarte larg palet de caractere grafice speciale. De exemplu, cel mai nou limbaj
de programare, Java, folosete aceast codificare a caracterelor.

2.3. Reprezentarea (codificarea numerelor ntregi)


n practica construciei calculatoarelor sunt cunoscute 3 coduri de reprezentare: codul
direct, codul invers i codul complementar. Primele 2 coduri au fost folosite doar la
calculatoarele din prima generaie.
Reprezentarea intern a numerelor se face n mai multe forme, n funcie de mulimea
creia i aparin numerele, operaiile aritmetice fiind efectuate de ctre dispozitive aritmetice
specializate.
Reprezentarea n cod complementar
Fie un numr ntreg x, unde x 2 n1 .
Numrul x reprezentat n cod complementar n convenie ntreag nseamn:
x,

x c

daca x 0

2 x, daca x 0

Regula practic pentru determinarea reprezentrii:


a) Dac numrul este pozitiv, atunci se transform n binar i se reprezint n zona
standard de memorie aleas, ncadrat la dreapta n acea zon.
b) Dac numrul este negativ, se reprezint iniial modulul su, apoi se inverseaz toi
biii acestei reprezentri obinnd codul invers. n final se adun cifra 1 n binar n poziia cea
mai puin semnificativ, obinndu-se codul complementar fa de 2.

Bazele aritmetice i logice ale sistemelor de calcul

11

n cod complementar pe n bii orice numr x cu x 2 n are o reprezentare unic.


Exist o configuraie unic de bii care nu reprezint un numr. Aceasta este: 1000...0. Pentru
pstrarea consistenei n reprezentare, unele implementri atribuie acestei configuraii valoarea
-2n-1. Pentru diferitele valori ale lui n, intervalele care se pot reprezenta sunt:
n=8
[-128,127];
n = 16
[-32768,32767];
n = 32
[-2147483648, 2147438647].
Reprezentarea numerelor naturale
Reprezentarea numerelor naturale N 0 ,1,...se realizeaz pe un numr fix de poziii
binare (de regul 8, 16, 32 sau 64), numit i reprezentare aritmetic (figura 1).

n-1

n-2

2n-1 2n-2

2n-3

21

20

Fig. 1. Reprezentarea numerelor naturale pe n poziii binare.

n poziiile 1,2,,n sunt nscrise cifrele binare corespunztoare numrului natural


reprezentat n binar, cifrele binare reprezentnd ponderile puterilor lui 2. Alinierea numerelor
naturale se realizeaz la dreapta, eventualele zerouri nesemnificative sunt plasate n faa
numrului.
Exemplu: Reprezentarea numrului 1000 = 1111101000(2) pe 16 cifre binare este
redat n figura 2.
16

15 14 13

11 10

215 214 213 212 211 210 29

28

27

26

25

24

23

22

21

20

12

Fig. 2. Reprezentarea numrului natural 1000 pe 16 poziii binare.

Cunoscnd numrul de poziii binare pe care se poate reprezenta un numr natural, se


poate stabili numrul maxim ce poate fi reprezentat aritmetic, acesta ocupnd toate poziiile cu
cifra 1. Astfel, pe 8 cifre binare, numrul maxim va fi reprezentat ca n figura 3.
7

27

26

25

24

23

22

21

20

Fig. 3. Reprezentarea numrului natural maxim pe 8 cifre binare.


Convertind, numrul n zecimal, se obine:

Bazele aritmetice i logice ale sistemelor de calcul


1 2 + 1 2 + 1 2 + 1 2 +1 24 +1 25 +1 26 +1 27 = 255 = 28 -1.

12

Procednd similar, numrul maxim ce poate fi reprezentat pe 16 cifre binare este 216-1.
Generaliznd pentru n cifre binare, se va obine 2n -1, apreciind deci c plaja de valori
acoperit de reprezentarea numerelor naturale este n funcie de numrul de cifre binare pe
care se reprezint, fiind situat n intervalul

0 ,...,2

1 .

2.4. Reprezentarea numerelor ntregi. Cod direct. Cod invers. Cod


complementar
Reprezentarea numerelor ntregi se mai numete i reprezentare algebric i este
asemntoare reprezentrii numerelor naturale, cu deosebirea c prima poziie este ocupat de
semnul numrului ntreg S, astfel:

este pozitiv
0 , dac n
S
1 , dac n este strict negativ
Reprezentarea numerelor ntregi pe n poziii binare este redat n figura 4.

n-1

n-2

S 2n-2

2n-3

21

20

Fig. 4. Reprezentarea numerelor ntregi pe n poziii binare.


Exemple:
1) S se reprezinte numrul 125(10) n cod complementar .
Se transform numrul 125 n baza 2, apoi se reprezint n cod direct pe 16 poziii binare.
125(10) = 1111101(2)
0
15

0 0 0 0 0 0 0 0 1 1 1 1 1 0 1
14

. . .

2 1 0

2) S se reprezinte numrul -26(10) n cod complementar.


Se face iniial reprezentarea modulului numrului : 26(10) = 11010(2)
Reprezentarea numrului +26 n virgul fix este :
0
15
-

0 0 0 0 0 0 0 0 0 0 1 1 0 1 0
14

. . .

2 1 0

Se inverseaz toi biii acestei reprezentri :


1

1 1 1 1 1 1 11 1 1 0 0 1 0 1

15 14

. . .

2 1 0

Bazele aritmetice i logice ale sistemelor de calcul


-

13

Se adun 1 n poziia cea mai puin semnificativ:


1

1 1 1 1 1 1 11 1 1 0 0 1 1 0

15 14

. . .

2 1 0

i se obine astfel reprezentarea numrului negativ -26(10) n virgul cod complementar.


3) Reprezentarea numrului +514 pe 16 cifre binare n form algebric este redat n
figura 5.

16 15 14 13 12 11 10
0 0 0 0 0 0 1

9
0

8
0

7
0

6
0

5
0

4 3 2
0 0 1

1
0

S 214 213 212 211 210 29

28

27

26

25

24

23 22

20

21

Fig. 5. Reprezentarea numrului +514 pe 16 cifre binare n form algebric.


Cunoscnd numrul de poziii binare pe care se reprezint un numr ntreg n form

algebric, intervalul posibil admis de reprezentare este 2 n1 ,2 n1 1 .


Dac n=8, atunci intervalul de variaie este:

, 27 1 128 , 127

Pentru n=16, domeniul de valori este situat n intervalul:

15

, 215 1 32768 , 32767

Suma algebric n cod complementar


Codul complementar este cel mai folosit cod de ctre sistemele de calcul pentru
aritmetica numerelor ntregi. Pentru a defini suma algebric, vom privi [x]c ca pe un ir de n
bii, reprezentnd un numr n baza 2.
Practic, reprezentnd numerele n cod complementar i presupunnd c nu apare
depire, operaiile de adunare i de scdere ale numerelor ntregi se pot efectua cu ajutorul
operaiei de adunare. Mai bine spus, a scdea un numr s dintr-un numr d nseamn a aduna
algebric reprezentrile n cod complementar ale lui s i d.
Pentru operaiile de nmulire i mprire n cod complementar exist muli algoritmi.
Alegerea acestora rmne n sarcina proiectanilor de procesare matematice. Practic i
operaiile de nmulire (mprire) se pot efectua pe baza operaiilor de adunare, prin deplasri
ale reprezentrilor interne ale numerelor .
Adunarea numerelor ntregi se efectueaz n binar poziie cu poziie (dispozitivul
aritmetic al sistemelor de calcul ce efectueaz adunarea se numete sumator).

14
Bazele aritmetice i logice ale sistemelor de calcul
Exemplu:
S se efectueze 23 + 15 n reprezentarea algebric pe 8 cifre binare.
Efectuarea acestei operaii este redat n figura 6.

23
+

15
=

38

Fig. 6. Adunarea a dou numere ntregi reprezentate algebric pe 8 cifre binare.

Scderea numerelor ntregi. Pentru a nu se folosi un alt dispozitiv aritmetic care s


efectueze scderea, aceasta poate fi transformat n adunare astfel:
a - b = a + (-b),
unde a reprezint desczutul, iar b scztorul.
Aceasta ns impune posibilitatea reprezentrii scztorului i n general a numerelor
negative, ntr-o form care s permit transformarea scderii n adunarea i efectuarea acesteia
de ctre sumator.

2.5. Codificarea (reprezentarea) numerelor reale. Operaii.


Un numr real x, x 0 este scris cu mantisa ntre 1 i 2, dac x se scrie, n baza 2,
astfel:

x 1s 1,m 2 e .
Este evident c orice numr real nenul accept o astfel de repezentare. Aceast
reprezentare se numete reprezentare n virgul flotant (mobil).
Exemple:
1) Numrul 25 se va exprima sub forma unui numr n virgul mobil astfel:
unde

25 = 11001(2) = 1,1001x24
mantisa este 1,1001
fracia este 1001
exponentul este e = 4
2) Numrul

31
se va scrie sub forma unui numr n virgul mobil astfel:
32

31 2 4 2 2 2 1 2 0

2 1 2 2 2 3 2 4 2 5 0 ,11111( 2 ) 1 ,1111 2 1
5
32
2
3) Numrul 128,25(10) = 10000000,01(2) = 1,00000001(2)27.

15
Bazele aritmetice i logice ale sistemelor de calcul
Pentru reprezentarea unui numr n virgul flotant, sunt necesare trei zone:
- zona pentru reprezentarea semnului s, care este un bit cu valoarea 0 pentru + i 1
pentru -;
- zona pentru reprezentarea mantisei. Mantisa este numrul 1,m. Partea ntreag nu se
reprezint, avnd ntotdeauna valoarea 1. Din partea fracionar se reine un numr constant i
finit de cifre:
- zona pentru reprezentarea exponentului e. Pentru reprezentarea exponentului se
utilizeaz un numr fix de bii. Pentru a se putea pune n eviden i semnul exponentului, n
zona exponentului se nscrie valoarea e+q, unde q poart numele de deplasament. Expresia
e+q poart numele de caracteristic a numrului real x.
Adoptarea acestui mod de reprezentare s-a fcut din raiuni de construcie a
calculatoarelor. Societatea de calculatoare IEEE a fost cea care s-a preocupat i a elaborat
norme de reprezentare a numerelor n virgul flotant (mobil). Practic toate firmele care
fabric astzi calculatoare i-au nsuit aceste norme i le-au implementat. Aceste moduri de
reprezentare sunt redate n figura 7.
La reprezentarea n simpl precizie caracteristica este calculat potrivit relaiei:
C = e +127,
indicnd practic, semnul exponentului astfel:
-

dac C < 127, atunci exponentul e < 0.

dac C > 127, atunci exponentul e > 0.

IEEE simpl precizie


s
31

e + 127
30

8 bii

23 bii

23 22
IEEE dubl precizie

s
63

e + 1023
62

52 51
11 bii

Fig. 7. Standardele de reprezentare a numerelor reale.

Caracteristica ocup 8 poziii binare, valoarea maxim a ei determinndu-se astfel:


Cmax = 28 -1 = 255,
iar exponentul maxim admis de reprezentare va fi:
emax = 255 127 = 128.
Pe ultimele 23 poziii binare se reprezint fracia aliniat la stnga, completat cu
zerouri nesemnificative la dreapta dac este necesar.

Bazele aritmetice i logice ale sistemelor de calcul


La reprezentarea n dubl precizie caracteristica se reprezint pe 11 poziii binare,
avnd valoarea maxim:
16

Cmax = 211 -1= 2047,


ceea ce corespunde unui exponent:
emax = 2048 - 1023 = 1024.
Fracia ocup 52 de poziii binare.
Standardele IEEE deosebesc 5 cazuri care pot s apar la reprezentarea unui numr:

Dac -q < e < q+1, atunci x = (-1)s 1, m2e

Dac e = -q, i m 0, atunci x = (-1)s 0, m2e

Dac e = -q, i m = 0, atunci x = (-1)s 0, (zero pozitiv sau negativ)

Dac e = q + 1, i m = 0, atunci x = (-1)s , (pozitiv sau negativ)

Dac e = q + 1, i m 0, atunci reprezentarea nu indic nici un numr.


Specificarea lui depinde de calculator i de limbaj.

EXEMPLE:
1) S se reprezinte n virgul mobil simpl precizie numerele:
a) 26 = 11010(2) = 1,101 24
Mrimile care se vor reprezenta sunt:
S = 0, deoarece numrul este pozitiv
f = 101
C = e + 127 = 4 + 127 = 131 = 10000011(2)
31 30

23 22

0 10000011 101000 . . .

Fig. 8. Reprezentarea numrului 26 n virgul mobil simpl precizie

b) 0,125= -0,0012=-1,0002-3
S=1
f=0
C= -3+127 = 124 = 01111100(2)
31 30

23 22

1 01111100

000 ...

Fig. 9. Reprezentarea numrului 0,125 n virgul mobil simpl precizie

2) S se reprezinte n virgul mobil dubl precizie numrul 124,0625.


124,0625 = 1111100,0001(2) = 1,111100000126
S=0

Bazele aritmetice i logice ale sistemelor de calcul


f = 1111000001
c = e + 1023 = 6 + 1023 = 1029 = 10000000101(2)

63 62

17

52 51

0 10000000101 111100000100. . .

Fig. 10. Reprezentarea numrului 124,0625 n virgul mobil dubl precizie

2.6. Operaii efectuate n virgul mobil


Adunarea i scderea n virgul mobil se realizeaz astfel:
-

se compar cei doi exponeni pentru a-l determina pe cel mai mare;

se aliniaz mantisa numrului cu exponent mai mic prin deplasarea virgulei


corespunztoare exponentului mai mare;

se adun (scad) mantisele aliniate, atribuind exponentul comun;

eventual se normalizeaz mantisa concomitent cu modificarea exponentului.

3. Elemente de algebr boolean


Mulimea B2. Operaii
n matematic, precum i n informatic se fac diferite afirmaii sau raionamente cu
ajutorul propoziiilor.
O propoziie este o afirmaie care este fie adevrat, fie fals, dar nu poate fi i
adevrat i fals n acelai timp.
Algebra propoziiilor se mai numete i algebra boolean. n aceast algebr se
studiaz valoarea logic a propoziiilor compuse n funcie de valoarea logic a propoziiilor
simple care le alctuiesc.
Valoarea de adevr a unei propoziii este notat cu 1, iar valoarea de fals cu 0,
simbolurile 0 i 1 fiind aici fr neles numeric.
Mulimea format din elemente 0 i 1 cu operaiile + i definite n clasa de resturi
modulo 2 formeaz un inel.
Fie B2 = 0,1. Peste aceast mulime se definesc mai multe operaii:

p
0
0
1
1

q
0
1
0
1

pq
0
1
1
1

Disjuncia logic - este o operaie binar notat cu . Fiind


date 2 propoziii p i q, numim disjuncia logic a celor 2 propoziii,
acea propoziie care este fals atunci cnd ambele propoziii p, q sunt
false, i adevrat n caz contrar. Tabelul de adevr pentru disjuncia
logic este urmtorul:

18

p
0
0
1
1

pq
0
0
0
1

q
0
1
0
1

Bazele aritmetice i logice ale sistemelor de calcul


Conjucia logic - este o operaie binar notat cu . Fiind
date 2 propoziii p,q, numim conjuncia logic a celor 2 propoziii,
acea propoziie care este adevrat numai atunci cnd ambele
propoziii p i q sunt adevrate i fals n caz contrar. Tabelul de
adevr pentru conjuncia logic este urmtorul:
Negaia logic Operaia unar notat cu p sau p , se

p
0
1

1
0

numete negaia logic a unei propoziii p i este prezentat n tabelul


alturat:
n ordinea prioritilor aceste operaii se succed astfel: , ,

n continuare vor fi prezentate principalele proprieti ale acestor operaii. Ele pot fi
demonstrate uor folosind tabelul de adevr.
Urmtoarele 10 grupuri de proprieti sunt adevrate:

a b c a b c ; a b c a b c

(asociativitatea)

a b c a b a c a b c a b a c

(distributivitatea)

a a a aa a

(idempotena)

a b b a, a b b a

(comutativitatea)

a a b a, a a b a

(absorbia)

aa

(dubla negaie)

a b
a b

a b

Legile lui

a b

De Morgan

a 0 0, a 1 a

a 0 a, a 1 1

a a 0, a a 1

Definiie: Structura algebric (B2, , ,

) formeaz o algebr boolean.

Operaia binar notat se numete suma modulo 2 sau sau exclusiv i este definit
n tabelul urmtor:

a
0
0
1
1

b
0
1
0
1

0
1
1
0

Bazele aritmetice i logice ale sistemelor de calcul


APLICAIE: Pe baza tabelelor de adevr s se verifice legile lui De Morgan
Tabelul corespunztor primei legi:
a

ab

(ab)

aVb

Tabelul corespunztor celei de a doua legi:


a

aVb

(aVb)

ab

19