Sunteți pe pagina 1din 16

BAZELE PROGRAMRII CALCULATOARELOR 1

SISTEME DE NUMERAIE POZIIONALE. APLICAII


PENTRU REPREZENTAREA NUMERELOR NATURALE N
BAZELE 2, 4, 8, 10 I 16.
1. Obiective
Prin parcurgerea acestei edine de laborator studenii vor fi capabili:

S defineasc noiunea de sistem de numeraie poziional;


S efectueze conversia unui numr din baza 10 n bazele 2, 4, 8 i 16;
S efectueze conversia unui numr din baza 4, 8 sau 16 n baza 2;
S efectueze conversia unui numr din baza 16 n baza 2, 4 sau 8;
S efectueze conversia unui numr din baza 2, 4, 8 sau 16 n baza 10.

2. Sisteme de numeraie
Un sistem de numeraie reprezint un ansamblu de reguli care precizeaz modul de
utilizare al unei mulimi finite de simboluri, numite cifre, n scopul reprezentrii valorilor
numerice. Sistemele de numeraie pot fi de dou tipuri: poziionale i nepoziionale.
Exemple:
1) Sistemul de numeraie roman care utilizeaz cifrele I (1), V(5), X(10), L(50), C(100),
D(500), M(1000) este un sistem de numeraie nepoziional. Sistemul de numeraie
roman este un sistem aditiv-substractiv. Numerele se obin adunnd sau scznd cifrele
dup urmtoarele reguli:
= 10 + 1 = 11; = 10 1 = 9;
= 2000 + 200 + 2 = 2202.
2) Sistemul de numeraie egiptean este unul zecimal i juxta-poziional ns diferit de cel
actual prin modalitatea de reprezentare a cifrelor. Cifrele sale sunt obinute prin
compunerea urmtoarelor 12 simboluri de baz:

3000

500

20

1
3521

BAZELE PROGRAMRII CALCULATOARELOR 1

3) Sistemul de numeraie zecimal care utilizeaz cifrele 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 este un


sistem poziional.

3. Sisteme de numeraie poziionale


n sistemele de numeraie poziionale, ponderea valoric a unei cifre este dat de poziia
ei n cadrul reprezentrii valorii numerice. Numrul de simboluri utilizate n cadrul unui sistem
de numeraie poart denumirea de baz sau rdcin. Baza B a unui sistem de numeraie are o
valoare ntreag mai mare sau egal cu 1. Ponderea cifrelor utilizate n reprezentarea unui numr
este dat de baz. Baza se reprezint n propria baz prin succesiunea de simboluri 1 i 0.
Exemple:
Sistemul
Sistemul zecimal
Sistemul binar
Sistemul cuaternar
Sistemul octal
Sistemul hexazecimal

Baza
10
2
4
8
16

Simboluri
0, 1, 2, 3, 4, 5, 6, 7, 8, 9;
0, 1;
0, 1, 2, 3;
A,C,G, T;
0, 1, 2, 3, 4, 5, 6, 7;
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Pentru a nelege numerele binare, trebuie s ne reamintim noiunile elementare de


matematic nvate n coala primar. Primele noiuni despre numere ne nvau c sistemul
zecimal este organizat pe coloane:
Mii Sute Zeci Uniti
5
2
9
7
astfel nct numrul 5297 provine de fapt din o mie plus dou sute plus patru zeci plus apte
uniti. Civa ani mai trziu am nvat semnificaia coloanelor este:

3
2
1
10
10 10 100
5
2
9
7
i c numrul 5297 este de fapt 5 103 + 2 102 + 9 101 + 7 100 .

BAZELE PROGRAMRII CALCULATOARELOR 1


Sistemul de numeraie zecimal folosete cifrele 0-9 pentru reprezentarea numerelor. Dac
am dori s punem n coloana 10 un numr mai mare, de exemplu 10, trebuie s nmulim 10
10 = 10+1 genernd deplasarea numrului cu o coloan mai la stnga. De exemplu 10 nu
poate fi pus ntr-o singur coloana; vom avea 1 n coloana lui 101 i 0 n coloana 100 i numrul
va ocupa dou coloane.
Sistemul de numeraie binar reprezint sistemul de baz pentru stocarea, transferul i
prelucrarea datelor pentru calculatoarele digitale i alte aparate electronice. n cazul acestora
baza 2 este preferat n locul bazei 10 cu care suntem familiarizai n viaa de zi cu zi. Spre
deosebire de sistemul zecimal, sistemul binar utilizat de calculatoare folosete dou simboluri: 0
i 1. Similar sistemului zecimal n care folosim uniti, zeci, sute, etc. n sistemul de numeraie
binar exist uniti, doi, patru, opt, aisprezece, etc.. Deoarece un comutator poate avea doar
dou stri: on i off acesta va permite stocarea unei singure cifre. Comutatoarele pot fi grupate
ns pentru a permite stocarea unor numere mai mari. Acesta este i motivul cheie pentru care
sistemul de numeraie binar este utilizat n sistemele digitale. Pentru a simplifica lungimea i
profitnd de simplitatea conversiei din binar n hexazecimal i invers, programatorii vor folosi
adeseori sistemul de numeraie hexazecimal.
Sistemul de numeraie binar este guvernat de aceleai principii ca i sistemul de
numeraie zecimal, cu deosebirea c operaiile sunt realizate n baza 2 i nu n baza 10. Cu alte
cuvinte, n locul coloanelor 103 |102 |101 |100 vor fi coloanele 23 |22 |21 |20 . n locul cifrelor 0-9,
se vor folosi doar 0-1. Acelai principiu descris mai sus rmne valabil; 3 n binar nu poate fi
plasat pe o singur coloan. Deoarece 3 este mai mare dect 1, trebuie folosit o coloan
suplimentar la stnga astfel obinem 11 n binar avnd semnificaia 1 21 + 1 20 .
Pentru a indica n ce sistem de numeraie este scris un numr la sfritul reprezentrii
numrului se adaug un indice inferior care precizeaz baza sistemului de numeraie.

4. Conversia unui numr natural dintr-o baz de numeraie n alta


Operaia de trecere de la reprezentarea unui numr n baza 1 la reprezentarea lui n baza
2 se numete conversie. Se consider un sistem de numeraie n baza B. Reprezentarea unui
numr ntreg N pe n poziii se realizeaz prin secvena de simboluri:
1 2 1 0
i verific urmtoarele relaii:
unde

= 1
=0

0 < , =
0, 1.

BAZELE PROGRAMRII CALCULATOARELOR 1


Coeficienii se obin prin mprirea (ntreag) succesiv a lui N i a cturilor obinute dup
fiecare mprire, cu valoarea bazei B, pn se obine ctul 0. Rezultatul conversiei numrului N
este constituit din resturile obinute considerate n ordinea invers de apariie.
Ct
:
0
0 :
1
...
...
2 : 1
1 :

Rest
0 (LSB)
1
...
2
1 (MSB)

n general, conversia dintr-o baza 1 10 ntr-o alt baz 2 10 se realizeaz prin


intermediul bazei 10 astfel: se convertete numrul din 1 n baza 10 i apoi n baza 2. Exist
ns situaii cnd conversia se poate face direct, cum este cazul conversiilor binar-cuaternaroctal-hexazecimal. innd cont c baza sistemelor de numeraie cuaternar, octal i hexazecimal
se obine prin ridicarea la puterea a cifrei 2 se pot stabili compatibiliti directe ntre cele patru
sisteme de numeraie. Astfel, conversiile folosesc faptul c orice cifr cuaternar, octal
respectiv hexazecimal, poate fi reprezentat prin 2, 3, respectiv 4 cifre binare conform
urmtoarelor reguli:
TABELUL I. CONVERSIA NTRE BAZA 2 I BAZELE 4, 8 I 16

Regula 21
Baza 2 Baza 4
00
0
A
01
1
C
10
2
G
11
3
T

Regula 421
Baza 2 Baza 8
000
0
001
1
010
2
011
3
100
4
101
5
110
6
111
7

Regula 8421
Baza 2 Baza 16
0000
0
0001
1
0010
2
0011
3
0100
4
0101
5
0110
6
0111
7
1000
8
1001
9
1010
A(10)
1011
B(11)
1100
C(12)
1101
D(13)
1110
E(14)
1111
F(15)

BAZELE PROGRAMRII CALCULATOARELOR 1

TABELUL II. PRINCIPALELE PUTERI ALE LUI 2, 4, 8 i 16


20
1

21
2

40
1
160
1

22
4

23
8

41
4
161
16

24
16

25
32

26
64

27
128

28
256

29
512

210
1024

211
2048

47
42 43 4 4
46
48
45
16 64 256 1024 4096 16384 65536
162
256

212
4096

80
1

213
8192

81
8

214
16384

215
32768

216
65536

82 83
84
85
64 512 4096 32768

163
164
4096 65536

5. Problematica propus pentru studiu


5.1.

S se converteasc prin metoda mpririlor succesive n bazele 2, 4, 8 i


16 urmtoarele numere. S se fac verificarea la final.

a) 48(10)
Ctul
48:2 24
24:2 12
12:2 6
6:2 3
3:2 1
1:2 0
Verificare

Restul
Rezultatul
0
48(10) = 110000(2)
0
0
0
1
1
110000(2) = (0 20 + 0 21 + 0 22 + 0 23 + 1 24 + 1 25 )(10)
= 0 + 0 + 0 + 0 + 16 + 32 = 48

Ctul
48:4 12
12:4 3
3:4 0
Verificare

Restul
0
0
3

Rezultatul
48(10) = 300(4)
300(4) = (0 40 + 0 41 + 3 42 )(10) = 0 + 0 + 48 = 48

BAZELE PROGRAMRII CALCULATOARELOR 1


Ctul Restul
48:8 6
0
6:8 0
6
Verificare

Ctul Restul
48:16 3
0
3:16 0
3
Verificare
b) 317(10) ;

Rezultatul
48(10) = 60(8)
60(8) = (0 80 + 6 81 )(10) = 0 + 48 = 48
Rezultatul
48(10) = 30(16)
30(16) = (0 160 + 3 161 )(10) = 0 + 48 = 48
c) 799(10) ;

d) 1119(10) ;

b) 317(10) ;

e)

4321(10)

BAZELE PROGRAMRII CALCULATOARELOR 1

c) 799(10) ;

BAZELE PROGRAMRII CALCULATOARELOR 1

d) 1119(10) ;

BAZELE PROGRAMRII CALCULATOARELOR 1

e) 4321(10)

BAZELE PROGRAMRII CALCULATOARELOR 1

5.2.

S se converteasc urmtoarele numere:


i)
din baza 4 n baza 2;
ii)
din baza 8 n bazele 2 i 4;
iii) din baza 16 n bazele 2, 4 i 8.

a) 301(4) ;
Fiecare cifr n baza 4 va fi nlocuit cu o grupare de 2 cifre n baza 2 conform
tabelului de la pagina 3, sau conform Regulii 21. Vom avea urmtoarele
grupri: 001 pentru 1; 101 pentru 5 i 111 pentru 7.
301(4) = 11 00 01(2) = 110001(2) ;
)157(8) ;
Fiecare cifr n baza 8 va fi nlocuit cu o grupare de 3 cifre n baza 2 conform
tabelului de la pagina 3, sau conform Regulii 421. Vom avea urmtoarele
grupri: 001 pentru 1; 101 pentru 5 i 111 pentru 7.
157(8) = 001 101 111(2) = 001101111(2) ;

10

BAZELE PROGRAMRII CALCULATOARELOR 1


Pentru a transforma n baza 4 pe rezultatul obinut n baza 2 se vor realiza
grupri de cte 2 cifre de la dreapta la stnga:
0 01 10 11 11(2) = 00 01 10 11 11(2) = 0 1 2 3 3(4) = 01233(4) =
(4) ;
) 23(16) ;
Fiecare cifr n baza 16 va fi nlocuit cu o grupare de 4 cifre n baza 2 conform
tabelului de la pagina 3, sau conform Regulii 8421. Vom avea urmtoarele
grupri: 1010 pentru A; 0010 pentru 2 i 0011 pentru 3.
23(16) = 1010 0010 0011(2) = 101000100011(2) ;
Pentru a transforma n baza 4 pe rezultatul obinut n baza 2 se vor grupa de la
dreapta la stnga cte 2 cifre i se completeaz prima grupare cu zeroruri dac
este necesar:
101000100011(2) = 10 10 00 10 00 11(2) = 2 2 0 2 0 3(4) = 220203(4) =
(4) ;
Pentru a transforma n baza 8 pe rezultatul obinut n baza 2 se vor grupa de la
dreapta la stnga cte 3 cifre i se completeaz prima grupare cu zerouri dac
este necesar:
101000100011(2) = 101 000 100 011(2) = 5 0 4 3(8) = 5043(8) ;
d) 302(4) ;
e) 2130(4) ;

f)
g)

243(8) ;
5122(8) ;

d) 302(4) ;

11

h) 18(16) ;
i) 59(16) .

BAZELE PROGRAMRII CALCULATOARELOR 1


) 2130(4) ;

f) 243(8) ;

g) 522(8) ;

h) 18(16) ;

12

BAZELE PROGRAMRII CALCULATOARELOR 1

i) 59(16) .

5.3.

S se converteasc din baza 10 n baza 2 folosind metoda puterilor lui 2


urmtoarele numere:

a) 48(10) ;
Din numrul ce trebuie transformat se scade puterea lui 2 cea mai apropiat de 48
i mai mic dect 48, n cazul de fa 32 i se continu iterativ pn la obinerea
rezultatului 0 dup scdere.

13

BAZELE PROGRAMRII CALCULATOARELOR 1


4832 32 = 25
1616 16 = 24
0
b)

954(2) ;

24

25
1

23
0

22
0

21
0

48(10) = 110000(2)
c)

2022(10) ;

d)

3106(10) ;

b) 954(2)

c) 2022(10) ;

14

e) 9317(10) .

20
0

BAZELE PROGRAMRII CALCULATOARELOR 1

d) 3106(10) ;

15

BAZELE PROGRAMRII CALCULATOARELOR 1


e) 9317(10) ;

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

16