Sunteți pe pagina 1din 8

Sisteme de numeraie

Organizarea oricrui computer depinde considerabil de reprezentarea numerelor i


caracterelor. n continuare se vor prezenta modurile n care calculatorul memoreaz i
manipuleaz caractere i informaii.
Unitatea de baz de memorare a informaie se numete bit (contragere de la
Binary Digit, n traducere cifr binar). Concret, bitul nu este dect starea de nchis-
deschis sau sus-jos dintr-un circuit.
Noiunea de bit a fost utilizat pentru prima dat n teza de doctorat a
matematicianului Claude Shannon, care a inventat prin teza sa un nou domeniu numit
teoria informaiei.
n 1964 proiectanii calculatorului mainframe IBM System/360 au stabilit ca i
convenie folosirea grupurilor de 8 bii ca unitate de baz a memoriei calculatorului.
Astfel a aprut octetul (o) sau byte-ul (B).
Un cuvnt este format din doi sau mai muli octei adiaceni adresai i manipulai
mpreun. Mrimea cuvntului reprezint mrimea datelor care sunt optim manevrate de
ctre o anumit arhitectur. Cuvintee pot fi succesiuni de 16, 32, 64 de bii. O
succesiune de 4 bii (jumtate de octet) se numete nibble.

Definiia 1:
Un sistem de numeraie este format din totalitatea regulilor de reprezentare a
numerelor cu ajutorul unor simboluri numite cifre.
Definiia 2:
Se numete baza sistemului de numeraie numrul total de cifre distincte utilizate
ntr-un sistem de numeraie.
Baza sistemului de numeraie se noteaz cu b i satisface condiia b>1. Numerele
pot fi reprezentate n baza b folosindu-se cifrele cuprinse n intervalul [0, b-1].
Definiia 3:
Un sistem de numeraie se numete poziional, dac valoarea unei cifre este dat
de poziia pe care aceasta o ocup n cadrul numrului.
Exemplu: Considerm numrul 2003

scris n baza 10.

n = 2003


numrul de uniti

numrul de zeci

numrul de sute

Se observ c, n funcie de poziia pe care o ocup, cifra 0 are valori diferite.
numrul de mii
Datele sunt reprezentate n computer numai n sistem binar, sistemele octal i
hexazecimal fiind notaii folosite de ctre programatori pentru scurtarea notaiilor prea
lungi care ar rezulta n cazul reprezentrii n binar a numerelor mari.
2.2 Algoritmi de conversie


Conversia numerelor ntregi din baza 10 n baza b

Fie x Z+. Dac x<b, atunci x
10
= x
b
, iar dac x b, trecerea de la baza 10 la baza b se
face astfel:
Conform teoremei mpririi cu rest a numerelor ntregi, putem scrie irul de
egaliti:
x=bq
0
+r
0
0r
0
<b
qo=bq
1
+r
1
0r
1
<b
... ...
q
k-1
=bq
k
+r
k
0r
k
<b
oprindu-ne la acel k pentru care q
k
=0. n acest caz avem:
x
10
=(r
k
r
k-1
......r
1
r
0
)
b
.
Algoritmul de conversie presupune mprirea numrului la baza b. Se obine un
rezultat format din ct i rest. Noul ct se mparte din nou la baz. Algoritmul continu
pn cnd se obine ctul 0. Resturile obinute, scrise n ordine invers, reprezint
numrul iniial convertit n baza b.

Problem. S se converteasc numrul x=843 din baza 10 n bazele 2,8 i 16.

Soluie. Vom avea:
a)b=2 843=2 421+1 b) b=8. 843=8105+3 i deci:
421=2 210+1 105=813+1 1101001011
2

210 =105+0 13=81+5 843
10
= 1513
8
105=252+1 1=80+1 34B
16

52=226+0
26=213+0 c) b=16. 843=1652+11
13=26+1 52=163+4
6=23+0 3=160+3
3=21+1
1=20+1

Conversia numerelor subunitare din baza 10 n baza b

Fie y (0,1). Conversia lui y din baza 10 n baza b se face prin nmuliri
succesive cu baza, separnd partea ntreag rezultat, dup cum urmeaz:
yb= r
-1
+y
1
0r
-1
<b ;y
1
(0,1)
y
1
b= r
-2
+y
2
0r
-2
<b ;y
2
(0,1)
... ... ... ...
y
m-1
b= r
-m
+y
m
0r
-m
<b ;y
m
(0,1)

Procedeul are n general un numr infinit de pai, totui n practic se face
conversia lund n considerare un numr finit de pai, n funcie de gradul de precizie ales
(numrul de nmuliri).
Exemplul 1:
S se converteasc numrul 0.375 din baza 10 n bazele 2, 8, respectiv 16.

0.3752 = 0.750
0.7502 = 1.500
0.5002 = 1


0.3758 = 3.000 0.37516 = 6.000


0.375
(10)
= 0.011
(2)
0.375
(10)
= 0.3
(8)
0.375
(10)
= 0.6
(16)

Exemplul 2. S se converteasc numrul y=0,273 din baza 10 n bazele 2, 8, respectiv
16.
Pentru baza 2 se va realiza conversia cu gradul de precizie 9, iar pentru bazele 8,16 gradl
de precizie este 3.

a) b=2. 0,2732= 0,546 b) b=8. 0,2738= 2,184 i deci:
0,5462= 1,092 0,1848= 1,472
0,0922= 0,184 0,4728= 3,776
0,1842= 0,368 0,010001011
2

0,3682= 0,736 0,273
10
= 0,2136
8
0,7362= 1,472 c) c=16. 0,27316= 4,368 0,45E
16
0,4722= 0,944 0,36816= 5,888
0,9442= 1,888 0,88816= 14,208
0,8882= 1,776

Conversia numerelor reale din baza 10 n baza b
Fie zR+. Numrul z se poate exprima n mod unic sub forma : z=[z]+{z},unde
prin [z]i {z} am exprimat partea ntreag i, respectiv, partea fracionar a numrului
z. Pentru a realiza conversia lui z din baza 10 n baza b se parcurg urmtoarele etape:
I) se realizeaz conversia prii ntregi conform algoritmului de conversie a
numerelor ntregi din baza 10 n baza b;
II) se realizeaz conversia prii fracionare conform algoritmului de
conversie a numerelor subunitare din baza 10 n baza b;
III) se concateneaz cele dou rezultate, plasnd virgula ntre ultima cifr
rezultat n urma conversiei prii ntregi i prima cifr rezultat n urma
conversiei prii fracionare.
Exemplu: S se converteasc numrul 843,375 n bazele 2,8 respectiv 16.
Conform rezultatelor obinute avem:
843,375
(10)
= 1101001011,011
(2)
843,375
(10)
= 1513,3
(8)
843,375
(10)
= 34B,6
(16)

Conversia numerelor reale din baza b n baza 10

Pentru a realiza conversia unui numr real din baza 10,se procedeaz astfel:
I) se trece de la reprezentarea poziional a numrului n baza b la
reprezentarea algebric n baza b;
II) se exprim cifrele numrului i exponenii care apar n reprezentarea
algebric prin cifre sau numere n baza 10;
III) se efectueaz calculele n baza 10 i se obine tocmai reprezentarea
poziional a numrului n baza 10.
Exemplu: S se converteasc n baza 10 numerele:
a) 10101,0110
(2)

b) 257,115
(8)

c) 1EF,24B
(16)




2
4
2
3
2
2
2
1
2
0
2
-1
2
-2
2
-
1 0 1 0 1 , 0 1 1 0 = 1*2
0
+0*2
1
+1*2
2
+0*2
3
+1*2
4
+0*2
-1
+1*2
-2
+1*2
-3
+0*2
-4
=2+4+16+
+ 1/4+1/8=(22*8+2+1)/8 =22,375

2 5 7 , 1 1 5 = 2*8
2
+5*8
1
+7*8
0
+1*8
-1
+1*8
-2
+5*8
-3
= 128+40+7+1/8+1/64+1/512 =
= (89600+64+8+5)/512 =175,150390

1 E F , 2 4 B = 1*16
2
+E*16
1
+F*16
0
+2*16
-1
+4*16
-2
+B*16
-3
= 256 + 14*16 + 15 + 2/16
+
+ 4/256 + 11/4096 = 495,14331

Conversii din binar n octal i hexazecimal

Pentru a putea realiza aceste conversii se prezint urmtorul tabel:

Zecimal Binar Octal Hexazecimal
0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

Conversii binar octal
Conversia n octal se face astfel: cifrele de la partea ntreag se mpart n grupe de cte
trei de la dreapta la stnga, iar cifrele de la partea fracionar se mpart n grupe de cte
trei de la stnga la dreapta (prima grup de la partea ntreag i ultima grup de la partea
fracionar se completeaz n fa, respectiv n spate, cu unul sau dou zerouri) i apoi
fiecare grup de trei cifre binare se nlocuiete cu cifra octal corespunztoare ei.
Invers, dac numrul este scris n octal, conversia n binar se face nlocuind
fiecare cifr octal cu grupul de trei cifre binare corespunztoare ei.
Exemplu:
1110010101 = 001.110.010.101 = 1625
(8)

Conversii binar hexazecimal
n acest caz conversia se face la fel ca n cazul precedent, cu precizarea c se vor
lua n considerare grupe de cte 4 cifre.
Exemplu:
1110011101 = 0011.1001.1101 =39D
(16)

Operaii aritmetice n binar

Tabla adunrii n binar este urmtoarea:

+ 0 1
0 0 1
1 1 10

Not: 1+1 = 2 (10 n binar).
Operaii aritmetice n hexazecimal:

La adunarea n hexa se ine cont c baza de referin este 16. Se va trece astfel ca
rezultat intermediar numrul ce depete baza i se va transporta unitatea (sau unitile)
ctre stnga.
La scdere se va ine cont, n cazul unei scderi intermediare cu rezultat negativ,
c la desczut se adun 16 (spre deosebire de 10 n baza 10) i se va transporta unitatea ce
trebuie sczut spre stnga.









Probleme rezolvate:

Explicaie:
1100+
0111
1000
11011
0+1+0 = 1
0+1+0 = 1
1+1+0 = 10 (se scrie 1, 1 mai departe)
1+0+1 = 10 + 1 = 11

1111+
1001
0110
11110
Explicaie:
1+1+0 = 10 (se scrie 0,1 mai departe)
1+0+1 = 10+1 = 11 (se scrie 1, 1 mai departe)
1+0+1 = 10+1 = 11 (se scrie 1, 1 mai departe)
1+1+0 = 10+1 = 11


Tabla scderii n binar:

- 0 1
0 0 Imposibil
*
1 1 0
*
Not: 0-1 este imposibil n binar dar se trece 1 i se mprumut o unitate din stnga.

Explicaie:
1010-
0111
0011
0 1 = 1 (se mprumut o unitate din stnga)
(1-1) - 1= 0 1 = 1 (se mprumut o unitate din stnga)
(0-1) 1 =1-1 (se mprumut o unitate din stnga)
(1-1) 0 = 0

Explicaie:
1111-
0111
0100
0100
1 - 1 0 = 0
1 1 0 = 0
1 1 1 = 0 1 = 1 (se mprumut o unitate din stnga)
(1 1) 0 0 = 0




1A +
4B
65
A+B = 10+11 = 5 (1 mai departe)
1+4 = 5 + 1 = 6


FF +
1E
11C





F + E = 15 +14 = 29 16= C (1 mai departe)
F + 1 = 15 +1 = 16 = 10
16
+ 1=11

FF +
1E
47
164





F + E +7 =36 2*16=4 (2 mai departe)
F +1 +4 = 14+2 = 16

1A-
C
C


A C = (16 + A) C = C (se mprumut o unitate din stnga)
1-1 = 0





28EF-
11FA
16F5
F A = 5
E F = (E + 16) F = F (se mprumut a unitate din stnga)
8 1 1 = 6
2 1 = 1

Probleme propuse

1. Definii bitul.
2. Ce este byte-ul?
3. Ce este cuvntul?
4. Din punct de vedere al reprezentrii numerelor, ce sistem de numeraie este
preferabil de utilizat?
5. Ce reprezint gradul de precizie n cazul algoritmului de conversie a numerelor
subunitare din baza 10 n baza b?
6. Cnd se ncheie algoritmul de conversie a numerelor ntregi din baza 10 n baza
b?
7. Realizai conversia numerelor 40, 272, 18, 94 n bazele 2, 8, respectiv 16.
8. Realizai conversia numerelor 0,824; 0. 029; 0,456; 0,613 n bazele 2, 8, respectiv
16.
9. Realizai conversia numrului 110110011 n bazele 10, 8, 16.
10. Efectuai urmtoarele operaii:
1010+
0101
1010+
0101
1011+
0111
1101+
1001
0111
1110 -
0111
10000 -
00111
01000

11111 -
11010
00011

45 +
1F

10 +
1E

8A2 +
194
CF1
1F -
E
1A2 -
DB

AFFE -
4C8F

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