Sunteți pe pagina 1din 30

BAZELE PROGRAMRII CALCULATOARELOR 3

REPREZENTAREA INFORMAIEI PRIN CODURI.


OPERAII ARITMETICE.
1. Obiective
Prin parcurgerea acestei edine de laborator studenii vor fi capabili:

S efectueze operaii aritmetice cu numere reprezentate n bazele 2, 8 i 16;


S reprezinte aritmetic numerele naturale;
S reprezinte numerele ntregi n cod direct;
S reprezinte numerele ntregi n cod complementar;
S reprezinte numerele ntregi n cod invers;
S reprezinte cifrele zecimale prin coduri zecimal-binare;
S efectueze operaii cu numere ntregi reprezentate n cod invers i in cod
complementar.

2. Operaii aritmetice cu numere reprezentate n bazele 2, 8 i 16.


2.1.

Operaii aritmetice n sistemul de numeraie binar

Regulile de operare n sistemul de numeraie binar sunt urmtoarele:

Adunare
0+0=0
0+1=1
1+0=1
1 + 1 = 10

Scdere
00=0
10=1
11=0
10 1 = 1

nmulire
00= 0
01= 0
10= 0
11= 1

* semnific mprumutul de pe poziia imediat urmtoare desczutului, care pentru poziia curent
nseamn 2, rezultnd c 2-1=1.
Exemple:
237(10) = 11101101(2) +
90(10) =
1011010(2)
=
327(10)
101000111(2)

237(10) = 11101101(2) 90(10) = 1011010(2)


147(10) = 10010011(2)

30

BAZELE PROGRAMRII CALCULATOARELOR 3


61(10)
23(10)

=
=

1403(10) =

2.2.

X
111101(2)
10111(2)
111101
111101
111101
000000
111101
10101111011(2)

15(10) = 1111(2) /
3(10) = 11(2)
5(10) = 101(2)
1111|11__
1111|0101
====

Operaii aritmetice n octal i hexazecimal

La adunare i nmulire rezultatul adunrii, respectiv nmulirii a dou cifre ca fi constituit


din restul mpririi sumei sau produsului la baz, ctul constituind transportul pentru poziia
urmtoare.
La scdere, un mprumut de la poziia urmtoare a numrului nseamn adunarea bazei la
desczutul poziiei curente.
Exemple:
n octal
1475 +
562
2257

3245 124
3121

357 X
3
1315

4156|32
32__ |123
=756
64_
116
116
===

n hexazecimal
AF26 +
27B
B1A1
A72 X
B
72E6

FDE5 126A
EB7B
4B0|78
4B0|A
===

31

BAZELE PROGRAMRII CALCULATOARELOR 3


3. Reprezentarea aritmetic a numerelor naturale
Numerele naturale pot fi reprezentate pe un numr fix de poziii binare (bii), de obicei 8,
16, 32 sau 64. Reprezentarea aritmetic mai este numit i format cu virgul fix.

21

1 2
22

23

21

20

Numrul maxim care poate fi reprezentat pe poziii binare este 2 1. Astfel, fiind disponibili
bii, se pot reprezenta numerele naturale din intervalul [0; 2 1]. De exemplu dac avem
disponibili 8 bii vom putea reprezenta numere din intervalul [0; 255], numrul minim
reprezentabil fiind 00000000, iar numrul maxim reprezentabil 11111111.

4. Reprezentarea numerelor ntregi n semn-mrime (cod direct)


Reprezentarea numerelor ntregi n semn-mrime este similar reprezentrii aritmetice a
numerelor naturale, cu specificaia c prima poziie din stnga este ocupat de semnul numrului
ntreg care este egal cu 0 dac numrul este pozitiv sau cu 1 dac numrul este strict negativ.

1 2
0 sau 1

2
3
Semn
2
2

21

20

n acest caz, numrul N poate fi scris


2

= (1)1 2
=0

Cunoscnd numrul de bii necesari reprezentrii, atunci intervalul maxim admis de


reprezentarea cod direct este [21 + 1; 21 1]. n cazul n care sunt disponibili 8 bii se
vor putea reprezenta numerele din intervalul [127; 127]. Valoarea minim reprezentabil pe 8
bii n cod direct este 11111111, iar valoarea maxim 01111111.

32

BAZELE PROGRAMRII CALCULATOARELOR 3


5. Reprezentarea numerelor n complement fa de 2 (cod complementar)
n cazul numerelor pozitive, reprezentarea n cod complementar este aceeai cu
reprezentarea n semn-mrime. n cazul numerelor negative,
2

= 2 3 1 0 = 2
=0

complementul su fa de 2 se poate scrie


2

= 2 2 = 2 1 + 1 2 = 2
=0

=0

+ 2 + 1 2

=0

=0


= 21 + (1 ) 2 + 1 = 21 + 2 = 1
2 3 1 0 + 1.
=0

=0

Regula 1. Se reprezint numrul n valoare absolut, apoi se inverseaz bit cu bit inclusiv bitul
de semn i se adun 1 la cel mai puin semnificativ bit.
Regula 2. Se consider numrul N reprezentat pe n bii, atunci numrul n reprezentat n cod
complementar va fi = 2 ||.
Regula 3. Codul complementar al unui numr negativ N se obine prin inversarea biilor
reprezentrii cu semn a valorii absolute, plecnd de la dreapta spre stnga, cu excepia primului
bit de 1 i a tuturor biilor de 0 dinaintea sa.
Considernd c se folosesc pentru reprezentare n bii, domeniul de valori reprezentabile este
[21 ; 21 1].
Se consider reprezentarea modulului numrului N pe n bii.

1 2
2
1
0
2 3 1
0
1
Semn 22 23
2
20
Se vor inversa toi biii numrului, inclusiv bitul de semn si obinem:

1 2

Semn

22

23

33

21

20

BAZELE PROGRAMRII CALCULATOARELOR 3


n continuare se va aduna 1 la cel mai puin semnificativ bit (LSB) i astfel se va obine
reprezentarea numrului n cod complementar.

Operaii aritmetice cu numere cu semn n cod complementar

5.1.

Adunarea a dou numere pozitive

Cazul 1
(nu se depete domeniul de reprezentare)
= 30; = 50; + = 80.
00011110 +
00110010
01010000 = 80.

Cazul 2
(se depete domeniul de reprezentare)
= 30; = 100; + = 130.
00011110 +
1100100
10000010 = -126.
10000010 1
10000001
01111110 = 126.

5.2.

Adunarea a dou numere negative

Cazul 1
(nu se depete domeniul de reprezentare)
= 30; = 50; + = 80.
30 = 00011110
50 = 00110010
11100001 +
11001101 +
1
1
-30 = 11100010
-50 = 11001110
11100010 +
11001110
1 <-- 10110000
se neglijeaz
10110000 = -80

Cazul 2
(se depete domeniul de reprezentare)
= 30; = 100; + = 130.
30 = 00011110
100 = 01100100
11100001 +
10011011 +
1
1
-100 = 10011100
-30 = 11100010
11100010 +
10011100
1 <--01111110
se neglijeaz
01111110
=
126.

10110000 1
1010111
01010000 = 80.

34

BAZELE PROGRAMRII CALCULATOARELOR 3


5.3.

Adunarea a dou numere cu semne diferite


= 30; = 50; + = 20.
30 = 00011110
50 = 00110010
11100001 +
1
20 = 00010100
-30 =
11100010
11100010 +
00110010
1<--00010100 = 20
se neglijeaz

6. Reprezentarea numerelor n complement fa de 1 (cod invers)


Pentru numerele pozitive, reprezentarea n cod invers este identic cu reprezentarea n
semn-mrime. n cazul numerelor negative, numrul n cod invers are forma =

1
2 3 1 0 .
Regula 1. Se reprezint valoarea absolut a numrului n cod direct i se inverseaz toi biii,
inclusiv semnul.
Regula 2. Se folosete definiia = 2 1 ||.
Domeniul de valori reprezentabile n cod invers este [21 + 1; 21 1].
Se consider reprezentarea modulului numrului N pe n bii.

1 2
2
1
0
2 3 1
0
1
Semn 22 23
2
20
Se vor inversa toi biii numrului, inclusiv bitul de semn si obinem:

1 2

Semn 22 23
21
20
astfel se va obine reprezentarea numrului n cod complementar.

35

BAZELE PROGRAMRII CALCULATOARELOR 3


Operaii aritmetice cu numere cu semn n cod invers
6.1.

Adunarea a dou numere pozitive

Adunarea a dou numere pozitive este similar cu adunarea n cod complementar.

6.2.

Adunarea a dou numere negative

Cazul 1
(nu se depete domeniul de reprezentare)
= 30; = 50; + = 80.
-30 = 11100001
-50 = 11001101

Cazul 2
(se depete domeniul de reprezentare)
= 30; = 100; + = 130.
- 30 = 11100001
-100 = 10011011

11100001 +
11001101
1 <-- 10101110 +
| -------------->1
10101111 = -80

6.3.

11100001 +
10011011
1 <-- 01111100 +
| -------------->1
01111101 = 125?

Adunarea a dou numere cu semne diferite


= 50; = 30; + = 20.
00110010 +
11001101
1 <-- 00010011 +
| -------------->1
00010100 = 20

50 = 00110010
-30 = 11100001

7. Reprezentarea cifrelor zecimale prin coduri zecimal-binare


Se consider mulimea cifrelor din sistemul de numeraie zecimal =
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. Mulimea cuvintelor de cod va conine cel puin 10 cuvinte distincte,
fiecare cuvnt avnd cel puin 4 bii. Se vor obine n total 10
16 posibiliti de codificare.
Variantele uzuale de codificri pot fi divizate n coduri ponderate i coduri neponderate.

36

BAZELE PROGRAMRII CALCULATOARELOR 3


Un cod ponderat asociaz fiecrei cifre zecimale o tetrad binar, iar ponderea fiecrui bit
din tetrad este egal cu valoarea cifrei din denumirea codului. Cifra zecimal codificat se
obine prin suma biilor din cuvntul de cod, ponderai cu valoarea corespunztoare din
denumirea codului.

Coduri zecimal-binare ponderate


Cifra zecimal
0
1
2
3
4
5
6
7
8
9

8421
BCD
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001

Codul zecimal-binar
2421
4221
Codul Aiken
0000
0000
0001
0001
0010
0010
0011
0011
0100
0110
1011
1001
1100
1100
1101
1101
1110
1110
1111
1111

7421
0000
0001
0010
0011
0100
0101
0110
0111
1001
1010

Dintre codurile neponderate, cele mai utilizate sunt codul Exces 3 i codul Gray. Codul
Exces 3 se obine din cuvntul de cod 8421 al cifrei zecimale respective la care se adaug 3
(0011 n binar). Codul Gray are proprietatea de adiacen, n sensul c trecerea de la o cifr
zecimal la urmtoarea se face prin modificarea unui singur bit din cuvntul de cod. Dac se
noteaz cu 8 4 2 1 cifrele binare ale a secvenelor codului 8421 i cu 4 3 2 1 cifrele binare
ale secvenelor codului Gray, acestea din urm pot fi calculate cu ajutorul relaiilor 4 =
8 ; 3 = 8 4 ; 2 = 4 2 1 = 2 1 .

Operaii cu numere reprezentate n BCD


7.1.

Adunarea n zecimal codificat binar

Fiecare cifr zecimal se codific printr-o tetrad binar. Adunarea se efectueaz poziie
cu poziie de la dreapta spre stnga.
1)
2)

Dac rezultatul este n mulimea {0, ,9} acesta nu va necesita corecii.


Dac rezultatul este n mulimea {10, ,15} se adun 6 (0110) la suma din poziia

37

BAZELE PROGRAMRII CALCULATOARELOR 3

3)

respectiv pentru a fora transportul la poziia urmtoare i se adun transportul la suma de


pe poziia urmtoare.
Dac rezultatul este n mulimea {16, ,19}, transportul generat se adun la poziia
urmtoare dup care se adun 6 (0110) la suma din poziia respectiv.

Exemplu:
5683 +
2794
8477
0101
0010

0110
0111
1

1 <-1000
8

7.2.

1000
1001
<-0001
0110
0111
7

1110
0110
0100
4

0011 +
0100
0111
7

Scderea n zecimal codificat binar

Fiecare cifr zecimal este codificat printr-o tetrad binar. Se efectueaz scderea
poziie cu poziie, dac nu este necesar mprumut, rezultatul nu necesit corecii. Dac este
necesar mprumutul, se scade 1 de la poziia urmtoare i se adun 16 la desczutul poziiei
curente. Se efctueaz scderea i se scade 6 (0110) din rezultat pentru corecie.

539 275
264
0101
0010
0100
0010
0010
2

-->

10011
0111
1100
0100
0110
6

38

1001 0101
0100
4

BAZELE PROGRAMRII CALCULATOARELOR 3


Coduri zecimal-binare neponderate
Cifra zecimal

Exces 3

Gray

0
1
2
3
4
5
6
7
8
9

0011
0100
0101
0110
0111
1000
1001
1010
1011
1100

0000
0001
0011
0010
0110
0111
0101
0100
1100
1101

8. Aplicaii propuse
8.1.

a)
e)
i)
m)

S se transforme numerele din baza 10 n baza 2 i s se efectueze operaiile


aritmetice:

123 + 79 =
734 + 235 =
489 145 =
73 12 =

81 + 24 =
180 15 =
386 97 =
46 5 =

b)
f)
j)
n)

c)
g)
k)
o)

17 + 126 =
724 475 =
34=
53 24 =

d)
h)
l)
p)

) 123 + 79
12364
5932
2716
118
32
11
0

7964
158
74
32
11
0

1111011+
1001111
11001010
Verficare:
123 + 79 = 202;
202(10) = 11001010(2) ;

79(10) = 1001111(2) ;

123(10) = 1111011(2) ;

39

341 + 159 =
326 254 =
12 3 =
46 23 =

BAZELE PROGRAMRII CALCULATOARELOR 3


b) 81 + 24 =

c) 17 + 126 =

40

BAZELE PROGRAMRII CALCULATOARELOR 3


d) 341 + 159 =

e) 734 + 235 =

41

BAZELE PROGRAMRII CALCULATOARELOR 3

f) 180 15 =

g) 724 475 =

42

BAZELE PROGRAMRII CALCULATOARELOR 3

h) 326 254 =

i) 489 145 =

j) 386 97 =

43

BAZELE PROGRAMRII CALCULATOARELOR 3

k) 3 4 =

l) 12 3 =

44

BAZELE PROGRAMRII CALCULATOARELOR 3

m) 73 12 =

n) 46 5 =

45

BAZELE PROGRAMRII CALCULATOARELOR 3

o) 53 24 =

p) 46 23 =

46

BAZELE PROGRAMRII CALCULATOARELOR 3

8.2.

a)
e)
i)
m)

123 + 79 =
734 + 235 =
489 145 =
73 12 =

8.3.

a)
c)
e)
g)
i)
k)
m)

S se transforme numerele din baza 10 n baza 8 i s se efectueze operaiile


aritmetice:
b)
f)
j)
n)

81 + 24 =
180 15 =
386 97 =
46 5 =

c)
g)
k)
o)

17 + 126 =
724 475 =
34=
53 24 =

d)
h)
l)
p)

341 + 159 =
326 254 =
12 3 =
46 23 =

S se efectueze urmtoarele operaii cu numerele reprezentate n bazele 2, 8 sau


16:
1011011(2) 100111(2) =
1100011(2) 101110(2) =
336(8) 257(8) =
613(8) 275(8) =
+ 9 =
=
45 =

b)
d)
f)
h)
j)
l)
n)

) 1011011(2) 100111(2) =

) 101010(2) + 110101(2) =

47

101010(2) + 110101(2) =
157(8) + 751(8) =
753(8) + 375(8) =
+ =
56 3 =
45(8) 54(8) =
11010(2) 101(2) =

BAZELE PROGRAMRII CALCULATOARELOR 3

) 1100011(2) 101110(2) =

) (16) + (16) =

) (16) + 9(16) =

48

BAZELE PROGRAMRII CALCULATOARELOR 3


) 56(16) 3(16) =

) (16) (16) =

) (16) 45(16) =

49

BAZELE PROGRAMRII CALCULATOARELOR 3

) 11010(2) 101(2) =

S se scrie reprezentarea aritmetic a urmtoarelor numere naturale pe numrul de


bii specificat:
i)
Pe 8 bii
a)
243
b) 189
c) 38
d) 254
ii)
Pe 16 bii
a)
3284
b) 7654
c) 5894
d) 65535
8.4.

a) 243 =
b) 189 =
c) 38 =
d) 254 =
a) 3284 =
b) 7654 =
c) 5894 =
d) 65535 =
8.5.

S se reprezinte n cod direct urmtoarele numere:

50

BAZELE PROGRAMRII CALCULATOARELOR 3


a)
e)

72
-87

b)
f)

-89
-110

c)
g)

124
109

d)
h)

-23
-56

d)
h)

-23
-56

a) 72 =
b) -89 =
c) 124 =
d) -23 =
e) -87 =
f) -110 =
g) 109 =
h) -56 =
8.6.
a)
e)

S se reprezinte n cod complementar urmtoarele numere:

72
-87

b)
f)

-89
-110

c)
g)

124
109

a) 72 =
b) -89 =
c) 124 =
d) -23 =
e) -87 =
f) -110 =
g) 109 =
h) -56 =
8.7.

S se reprezinte n cod invers urmtoarele numere:

51

BAZELE PROGRAMRII CALCULATOARELOR 3


a)
e)

72
-87

b)
f)

-89
-110

c)
g)

124
109

d)
h)

-23
-56

a) 72 =
b) -89 =
c) 124 =
d) -23 =
e) -87 =
f) -110 =
g) 109 =
h) -56 =
8.8. Se dau numerele zecimale din tabelul de mai jos. S se reprezinte:
i)
n cod BCD
a)
1294
b)
4765
c) 3762
d)
ii)
n codul Aiken
a)
7651
b)
5386
c) 3289
d)
iii)
n cod Exces 3
a)
1539
b)
3421
c) 6593
d)
iv)
n cod Gray
a)
5492
b)
3286
c) 5693
d)
i) cod BCD
a) 1294 =
b) 4765 =
c) 3762 =
d) 8573 =
iii)
Cod Exces3
a) 1539 =
b) 3421 =

52

8573
7248
4618
5901

BAZELE PROGRAMRII CALCULATOARELOR 3


c) 6593 =
d) 4618 =
iv)
Cod Gray
a) 5492 =
b) 3286 =
c) 5693 =
d) 5901 =

8.9.

a)
c)
e)

S se calculeze folosind reprezentarea n cod complementar i n cod invers


urmtoarele operaii:
52 + 63 =
89 54 =
93 + 27 =

b)
d)

- Folosind reprezentarea n cod complementar:


a) 52+63=

b) -45+82 =

53

45 + 82 =
88 + 44 =

BAZELE PROGRAMRII CALCULATOARELOR 3

c) 89-54 =

d) -88+44 =

e) -93+27 =

54

BAZELE PROGRAMRII CALCULATOARELOR 3

- Folosind reprezentarea n cod invers:


f) 52+63=

g) -45+82 =

h) 89-54 =

55

BAZELE PROGRAMRII CALCULATOARELOR 3

i) -88+44 =

j) -93+27 =

8.10. S se calculeze folosind reprezentarea BCD:


a)
b)
c)

567 + 893 =
4915 + 3296 =
765 + 386 =

d)
e)

56

1563 875 =
932 876 =

BAZELE PROGRAMRII CALCULATOARELOR 3


a) 567 + 893 =

b) 4915 + 3296 =

c) 765 + 386 =

57

BAZELE PROGRAMRII CALCULATOARELOR 3

d) 1563 875 =

e) 932 876 =

58

BAZELE PROGRAMRII CALCULATOARELOR 3

9. Referine bibliografice
[1] Manta V., Ungureanu F., Introducere n tiina sistemelor i a calculatoarelor, Volumul I,
Editura Gh.Asachi, Iai, 2002.

59

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