Sunteți pe pagina 1din 10

UI3. Baze de numerație.

Reprezentarea datelor în
memoria calculatorului

CUPRINS
1.1. Baze de numerație
1.2. Conversia numerelor dintr-o bază în alta
1.2.1. Conversia numerelor întregi
1.2.2. Conversia numerelor reale
1.2.3. Procedee de conversie rapidă între bazele 8, 16 și baza 2
Lucrare de verificare nr.3.

Obiective
• Prezentarea noțiunilor generale despre sistemele de numerație;
• Cunoașterea celor mai uzuale baze de numerație;
• Cunoașterea procedeelor de conversie dintr-o bază în alta.

După parcurgerea unității de învățare nr. 3. cursanții vor fi capabili:

• să identifice diferite reprezentări ale datelor în sistemele de numerație


uzuale;
• să realizeze conversii rapide ale datelor dintr-o bază în alta.
1.1. Baze de numerație

Definiție: Un sistem de numerație este format din totalitatea regulilor de


reprezentare a numerelor cu ajutorul unor simboluri numite cifre.
Orice număr natural 𝑞 ≥ 2 poate fi considerat o bază de numerație.
Cifrele în baza de numerație q sunt 0, 1, 2, …, q-1. Baza 10 este, evident, cea mai
cunoscută bază şi are cifrele 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Datorită utilizării bistabililor
în construcția memoriei calculatoarelor, se utilizează reprezentarea numerelor în
baza 2 sau puteri ale acesteia (baza 8 şi baza 16).
Orice număr real se poate scrie într-o bază oarecare 𝑞 ≥ 2 sub forma:
𝑎𝑛 𝑎𝑛−1 𝑎𝑛−2 … 𝑎1 𝑎0 𝑎−1 𝑎−2 𝑎−3 … 𝑎−𝑖 …
unde 𝑎𝑖 sunt cifre ale bazei q sau altfel spus 𝑎𝑖 ∈ {0,1,2, … , 𝑞 − 1}.
Sistemele de numerație cele mai cunoscute sunt: sistemul binar, sistemul zecimal,
sistemul octal și sistemul hexazecimal.
În informatică, bazele uzuale sunt 2, 8 și 16. Corespunzător acestor sisteme de
numerație, cifrele în baza 2 sunt {0,1}, cifrele în baza 8 sunt {0,1,2,3,4,5,6,7},
cifrele în baza 16 sunt {0,1,2,3,4,5,6,7,8,9, 𝐴, 𝐵, 𝐶, 𝐷, 𝐸, 𝐹}.
Exemple:
• în baza 10: 196.13, -250981, 476
• în baza 2: 101.11, 111001.01, 110101
• în baza 8: 615.02, 0.32, -445
• în baza 16: 62A, DCA.AB5, CEA.35A
Calea cea mai simplă de conversie a unui număr dintr-o bază în alta este utilizarea
bazei 10 ca bază intermediară. Astfel, pentru a reprezenta un număr dintr-o bază
oarecare într-o altă bază, mai întâi se face o conversie a numărului în baza 10, iar
apoi din baza 10 se va face conversia numărului în baza dorită.
1.2. Conversia numerelor dintr-o bază în alta

1.2.1. Conversia numerelor întregi


Conversia numerelor întregi dintr-o bază oarecare q în baza 10

Pentru a face conversia numerelor întregi dintr-o bază q în baza de


numerație 10 se utilizează dezvoltarea polinomială. Astfel, dacă numărul
întreg N se reprezintă în baza q sub forma:
𝑁𝑞 = 𝑎𝑛 𝑎𝑛−1 𝑎𝑛−2 … 𝑎1 𝑎0
atunci, reprezentarea numărului în baza 10 va rezulta din dezvoltarea:
𝑁10 = 𝑎𝑛 𝑞 𝑛 + 𝑎𝑛−1 𝑞 𝑛−1 +𝑎𝑛−2 𝑞 𝑛−2 + ⋯ + 𝑎1 𝑞 + 𝑎0.

Exemple:

1. Fie numărul x=1000112. Reprezentarea acestui număr în baza 10 este:

1000112 = 1 × 25 + 0 × 24 + 0 × 23 + 0 × 22 + 1 × 21 + 1 × 20
= 3510

2. Fie numărul x=BD416. Reprezentarea acestuia în baza 10 este


următoarea:

𝐵𝐷416 = 𝐵 × 162 + 𝐷 × 161 + 4 × 160 = 302810

3. Fie numărul x=6238. Reprezentarea acestui număr în baza 10 este:

6238 = 6 × 82 + 2 × 81 + 3 × 80 = 40310

4. Fie numărul x=1100112. Reprezentarea acestui număr în baza 10 este:

1100112 = 1 × 25 + 1 × 24 + 0 × 23 + 0 × 22 + 1 × 21 + 1 × 20
= 5110

5. Fie numărul x=A1316. Reprezentarea acestui număr în baza 10 este:

𝐴1316 = 𝐴 × 162 + 1 × 161 + 3 × 160 = 257910

6. Fie numărul x=4718. Reprezentarea acestui număr în baza 10 este:


4718 = 4 × 82 + 7 × 81 + 1 × 80 = 31310
Conversia numerelor întregi din baza 10 într-o bază oarecare q
Fie dezvoltarea polinomială:
𝑁10 = 𝑎𝑛 𝑞 𝑛 + 𝑎𝑛−1 𝑞 𝑛−1 +𝑎𝑛−2 𝑞 𝑛−2 + ⋯ + 𝑎1 𝑞 + 𝑎0.

Algoritmul de conversie trebuie să identifice toate cifrele


𝑎𝑛 , 𝑎𝑛−1 , 𝑎𝑛−2 , … , 𝑎0 ale numărului convertit în baza q,
𝑁𝑞 = 𝑎𝑛 𝑎𝑛−1 𝑎𝑛−2 … 𝑎1 𝑎0
Împărțind dezvoltarea polinomială prin q, se obține relația:
𝑁10 𝑎0
= 𝑎𝑛 𝑞 𝑛−1 + 𝑎𝑛−1 𝑞 𝑛−2 + 𝑎𝑛−2 𝑞 𝑛−3 + ⋯ + 𝑎1 +
𝑞 𝑞
𝑁10 (0) 𝑎0
= 𝑁10 +
𝑞 𝑞
Știind că expresia:
(0)
𝑁10 = 𝑎𝑛 𝑞 𝑛−1 + 𝑎𝑛−1 𝑞 𝑛−2 + 𝑎𝑛−2 𝑞 𝑛−3 + ⋯ + 𝑎1
este întreagă, iar 0 ≤ 𝑎0 < 𝑞, deoarece 𝑎0 este cifră în baza q, rezultă că
(0)
𝑎0 se obține ca rest al împărțirii numărului 𝑁10 la q, iar 𝑁10 este câtul
acestei împărțiri.
(0)
Analog se procedează cu expresia 𝑁10 și se obține:
(0)
𝑁10 𝑎1 (1) 𝑎1
= 𝑎𝑛 𝑞 𝑛−2 + 𝑎𝑛−1 𝑞 𝑛−3 + 𝑎𝑛−2 𝑞 𝑛−4 + ⋯ + 𝑎2 + = 𝑁10 +
𝑞 𝑞 𝑞

Aplicând un raționament asemănător celui prezentat anterior, se deduce că


(0)
cifra 𝑎1 se obține ca rest al împărțirii câtului anterior, 𝑁10 la baza q.
La fiecare pas i aplicat relației:

(𝑖−1)
𝑁10 (𝑖) 𝑎𝑖 (−1)
= 𝑁10 + , 𝑖 = 0,1, ,2, … , 𝑛, 𝑢𝑛𝑑𝑒 𝑁10 = 𝑁10
𝑞 𝑞

se obțin în ordine, cifrele 𝑎0 , 𝑎1 , 𝑎2 , … , 𝑎𝑛 .


(𝑖)
Algoritmul de conversie se termină când se obține câtul 𝑁10 egal cu zero.

Exemple:
1. Fie numărul x=3510. Conform algoritmului de conversie din baza 10 în
baza 2, numărul 3510=1000112.

Figura 1. Conversia numărului 35 din baza 10 în baza 2

2. Fie numărul x=302810. Aplicând algoritmul de conversie a unui număr


întreg din baza 10 în baza 16, se obține: 302810=BD416.

Figura 2. Conversia numărului 3028 din baza 10 în baza 16

Prin împărțiri succesive se obțin cifrele care vor forma noul număr
reprezentat în baza 2, respectiv 16, citind de la sfârșit câturile obținute.

1.2.2. Conversia numerelor reale


Un număr real este identificat prin cele două părți ale sale: partea întreagă
și partea fracționară. Conversia unui număr real presupune conversia părții
întregi, respectiv conversia părții fracționare.
Ținând cont de cele prezentate în subcapitolul anterior, conversia părții
întregi a unui număr real se face după algoritmii de mai sus.
În continuare ne von ocupa de conversia părții fracționare a unui număr
real.
Partea fracționară 𝐹𝑞 a unui număr real pozitiv este:
𝐹𝑞 = 0. 𝑎−1 𝑎−2 𝑎−3 … 𝑎−𝑚 …
Conversia părții fracționare a unui număr real pozitiv dintr-o bază
oarecare q în baza 10

Ca și în cazul numerelor întregi, conversia dintr-o bază oarecare q în baza


10 a unei fracții 𝐹𝑞 se face utilizând dezvoltarea sa polinomială, adică:

𝐹10 = 𝑎−1 𝑞 −1 + 𝑎−2 𝑞 −2 + ⋯ + 𝑎−𝑚 𝑞 −𝑚 + ⋯

Exemple:
1. Numărul x=0.10112 are următoare dezvoltare polinomială:

0.10112 = 1 × 2−1 + 0 × 2−2 + 1 × 2−3 + 1 × 2−4 = 0.687510

2. Numărul x=0.A516 are următoarea conversie în baza 10:

0. 𝐴516 = 𝐴 × 16−1 + 5 × 16−2 = 0.6445310

Conversia părții fracționare a unui număr real pozitiv din baza 10 într-o
bază oarecare q

Pentru a afla cifrele numărului 𝐹𝑞 în baza q, se pornește de la dezvoltarea


sa polinomială:

𝐹10 = 𝑎−1 𝑞 −1 + 𝑎−2 𝑞 −2 + ⋯ + 𝑎−𝑚 𝑞 −𝑚 + ⋯

Înmulțind această relație cu baza q, se obține:

𝑞 × 𝐹10 = 𝑎−1 + 𝑎−2 𝑞 −1 + ⋯ + 𝑎−𝑚 𝑞 −𝑚+1 + ⋯

Astfel, 𝑎−1 = [𝑞 × 𝐹10 ] ceea ce înseamnă partea întreagă a produsului


𝑞 × 𝐹10 .

Cifra următoare, 𝑎−2 se obține printr-un procedeu analog, pornind însă de


(1)
la fracția 𝐹10 .
(1)
𝐹10 = 𝑎−2 𝑞 −1 + 𝑎−3 𝑞 −2 + ⋯ + 𝑎−𝑚 𝑞 −𝑚+1 + ⋯
(1) (2)
Deci, cifra 𝑎−2 = [𝑞 × 𝐹10 ] și analog cifra 𝑎−3 = [𝑞 × 𝐹10 ], unde fracția
(2)
𝐹10 = 𝑎−3 𝑞 −1 + 𝑎−4 𝑞 −2 + ⋯ + 𝑎−𝑚 𝑞 −𝑚+2 + ⋯

(𝑖)
Dacă există un număr i întreg, astfel încât 𝐹10 este număr întreg, atunci
algoritmul se oprește. În caz contrar, fracția este periodică.

Exemple:

1. Fie partea fracționară 𝐹10 = 0.64453. Conversia acesteia în baza 16


presupune aplicarea algoritmului prezentat anterior.
0.64453 × 16 = 10.31248 → 𝑎−1 = [10.31248] = 𝐴
0.31248 × 16 = 5 → 𝑎−2 = 5

Numărul rezultat este 0.A516.


2. Fie fracția 𝐹10 = 0.7. Pentru a converti această fracție în baza 4, se
aplică același algoritm de mai sus.

0.7 × 4 = 2.8 → 𝑎−1 =2


0.8 × 4 = 3.2 → 𝑎−2 =3
0.2 × 4 = 0.8 → 𝑎−3 =0
0.8 × 4 = 3.2 → 𝑎−4 =3
0.2 × 4 = 0.8 → 𝑎−5 =0

După calcule succesive, se observă repetarea rezultatelor și drept


urmare se obține fracția periodică mixtă 0.2(30)4.

1.2.3. Procedee de conversie rapidă între bazele 8, 16 și baza 2

a. Conversia octal – binar

Fiecare dintre cifrele bazei 8 se reprezintă în baza 2 (pe baza algoritmilor


prezentați) prin configurațiile binare următoare, numite triade:
Figura 3. Conversia octal - binar

Conversia rapidă unui număr din octal în binar se face scriind în


locul fiecărei cifre octale triada corespunzătoare.

Exemple:
Fie numărul x=43.258. Acesta se scrie în baza 2, făcând înlocuirile
corespunzătoare fiecărei cifre, astfel:
- 4 se înlocuiește cu 100
- 3 se înlocuiește cu 011
- 2 se înlocuiește cu 010
- 5 se înlocuiește cu 101.
Se obține numărul 100011.0101012.
Conversia rapidă a unui număr binar în octal se face astfel:
- pentru partea întreagă se marchează triadele începând de la virgulă spre
stânga;
- pentru partea fracționară se marchează triadele începând de la virgulă
spre dreapta;
- fiecare triadă este înlocuită cu valoarea corespunzătoare din baza 8.

Exemplu: 1111101.01110112 (din baza 2) devine 175.3548 (în baza 8).

b. Conversia binar – hexazecimal


Tetradele corespunzătoare reprezentării în baza 2 a cifrelor din baza 16
sunt:
Figura 4. Conversia hexazecimal – binar

Pașii algoritmului sunt identici cu cei ai conversiei binar-octal, adică


fiecărei tetrade i se asociază cifra hexazecimală corespunzătoare.

Exemplu:
111 1000.1110 11112=78. EF16.

Calcule în baza 2 și baza 8


Regulile de calcul pentru adunare și înmulțire în baza 2:

Figura 5. Adunarea și înmulțirea în baza 2

Atenție: La adunare apare cifra de transport (bitul 1 din 10 = 1+1).


Regulile de calcul pentru adunare în baza 8:
Figura 6. Adunarea în baza 8

Regulile de calcul pentru înmulțire în baza 8:

Figura 7. Înmulțirea în baza 8

Lucrare de verificare nr. 3


✓ Care este reprezentarea în bazele 2 și 16 a numerelor 2563, 64,
928 și 6923 scrise în baza 10?
✓ Care este valoarea în baza 10 a numerelor binare: 0110101,
11101, 0011001110?
✓ Să se convertească numărul 37.8210 în bazele 2, 8 și 16.

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