Sunteți pe pagina 1din 6

Conversia din baza 10 in baza q

Teorie
Sisteme de enumerație
Pentru reprezentarea numerelor de-a lungul timpului au fost folosite diverse tehnici prin care se reprezentau aceste numere. Pentru că era greu să tot
inventezi noi simboluri numere, oamenii au început să grupeze numerele pentru o reprezentare mai ușoară a acestora. Gruparea numerelor ține de
momentul și specificul zonei.
Pentru mai multe informații despre istoricul modalităților de reprezentare a numerelor accesați: http://mathematicalvariety.blogspot.com/2011/10/despre-
numere-si-sisteme-de-numarare.html
În momentul de față cea mai uzuală metodă de reprezentarea a numerelor o reprezintă sistemul de numărare în baza 10. Spunem că reprezentăm numerele
în baza 10 pentru că pentru că folosim în reprezentarea acestora 10 simboluri (cifre): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Pentru a reprezenta numărul 10 nu am folosit un alt simbol ci am considerat că în fața fiecărui simbol de până acum a fost cifra 0 (pe care nu am mai scris-o) –
00, 01, 02, 03, 04, 05, 06, 07, 08, 09, iar pentru următorul număr, numărăm cifra din față și reîncepem de la 0, deci vom continua cu 10, 11, 12, ..19, 20, 21,
22, 23, ...29, 30, 31, ..........97, 98, 99. Pentru ca cele 2 cifre nu mai pot fi crescute creștem 0 din fata numerelor (care nu a fost scris) și continuăm cu 100, 101,
102, 103, ... etc.
Putem folosi pentru reprezenta numerelor și alte baze de enumerație cu mai multe cu mai puține simboluri (cifre).
De exemplu pentru a reprezenta numerele în baza 3 folosim cifrele 0, 1, 2,
Exemplu: Scrierea numerelor în baza 3 arată astfel

Baza 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Baza 3 0 1 2 10 11 12 20 21 22 100 101 102 110 111 112 120 121 122 200 201 202 210 211 212 220 221 222 1000 1001 1002 1010

Regulă: Cifrele (simbolurile) folosite pentru reprezentarea numerelor sunt strict mai mici decât baza de enumerație. Exemple Pentru a reprezenta
numerele în baza 7 folosim cifre de la 0 la 6, pentru a reprezenta numerele în baza 9 folosim cifrele de la 0 la 8 etc.
Există și baze de enumerație mai mari decât 10. În aceste baze pentru numerele din bază mai mari sau egale cu 10 se folosesc ca simboluri de reprezentare
litere. Exemplu: Pentru a reprezenta numerele în baza 14 folosim simbolurile 0, 1, 2, 3, ...,8, 9, A (pentru a reprezenta 10), B (pentru a reprezenta 11), C
(pentru a reprezenta 12), D (pentru a reprezenta 13). Deci pentru a reprezenta numerele în baza 14 vom folosi simbolurile 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A,B, C, D.
Exemplu: Scrierea numerelor în baza 14 arată astfel

Baza 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Baza 14 0 1 2 3 4 5 6 7 8 9 A B C D 10 11 12 13 14 15 16 17

Baza 10 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
Baza 14 18 19 1A 1B 1C 1D 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 30 31 32 33

Pentru a indica baza în care este reprezentat numărul, după număr se scrie ca indice între paranteze rotunde baza în care este dat numărul. Pentru
numerele scrise în baza 10 se poate ignora scrierea bazei. Exemple: 102 (3) – număr scris în baza 3, 3505(6) – număr scris în baza 6, 20201(7) – număr scris în baza
7.

Conversia numerelor din baza 10 într-o altă bază de enumerație q


Pentru a afla reprezentarea numărului 70 din baza 10 în baza 3 nu este necesar să aflăm reprezentarea în baza 3 a tuturor numerelor până la 70 ci putem
folosi următorul algoritm:
Se află pentru numărul dat restul și câtul, apoi se continuă algoritmul pentru cât până se obține câtul 0. Resturile parcurse în ordine inversă dau
reprezentarea în baza q a numărului dat.
număr baza(q)
rest cât

Exemplu: numărul 70(10) se va converti în baza 3 astfel:


Exemplu 1: 70(10)=......(3) Exemplu 2: 29(10)=......(3) Exemplu 3: 34(10)=......(4)

70 3 29 3 34 4
1 23 3 2 9 3 2 8 4
2 7 3 0 3 3 0 2 4
1 2 3 0 1 3 2 0
2 0 1 0
Deci 34(10)= 202 (4)
Deci 70(10) = 2121(3) Deci 29(10)=1002(3)
Exemplu 4: 34(10)=......(5) Exemplu 5: 55(10)=......(4)

34 5 55 4
4 6 5 3 13 4
1 1 5 1 3 4
1 0 3 0
Deci 34(10)= 114 (5) Deci 55(10)= 313 (4)

Algoritm
Variabile
n – numărul ce urmează a fi convertit
q – baza în care se realizează conversia
nq – reprezentarea lui n în baza q (se construiește un număr punând cifrele la început).
p – ajută la construcția lui nq.
r, c - câtul și restul împărțirii lui n la q

Descriere: Citim n și q. Aflăm apoi câtul și restul împărțirii lui n la q. Construim nq un număr format din resturile împărțirii lui n la q punând cifrele la începutul
lui nq. Repetăm algoritmul pentru cât până când obținem câtul 0.

Algoritm
citesc n, q //numărul n în baza 10 și baza q
nq←0; //inițializăm nq și p (nq număr construit din resturi punând resturile la început)
p←1;
repetă
c← [n/q] //aflăm câtul c și restul r
r←n%q
nq←nq+r*p //punem restul în fața numărului nq
p←p*10
n←c //repetăm algoritmul pentru cât, așadar n devine câtul c
până când c=0 //repetăm până cînd obținem câtul 0
scrie nq
Scriere condensată:
Putem să scriem calculul câtului și restului în locul unde avem nevoie de ele așadar în locul instrucțiunii nq←nq+r*p putem scrie direct nq←nq+p*(n%q), iar
în locul instrucțiunii n←c putem scrie n←[n/q]
citesc n, q
nq←0;
p←1;
repetă
nq←nq+p*(n%q)
p←p*10

Implementare C++ a algoritmul de conversie a unui număr n din baza 10 în baza q


Implementare C++ condensată a algoritmul de conversie a unui număr n din baza 10 în baza q

Exerciții
1. Scrieți în baza 2 numerele până la 20.
2. Scrieți în baza 5 numerele până la 20.
3. Care sunt cifrele (si eventual literele) folosite pentru a reprezenta numerele în baza 4?
4. Care sunt cifrele (si eventual literele) folosite pentru a reprezenta numerele în baza 8?
5. Care sunt cifrele (si eventual literele) folosite pentru a reprezenta numerele în baza 9?
6. Care sunt cifrele (si eventual literele) folosite pentru a reprezenta numerele în baza 12?
7. Care sunt cifrele (si eventual literele) folosite pentru a reprezenta numerele în baza 16?
8. Indicați care din următoarele numere nu sunt corecte în bazele de enumerație date:
a. 101210(3) e. 22211225(3) i. 4DE5(16)
b. 1010101111(2) f. 100404(3) j. 2ABCD5(12)
c. 10201011(2) g. 202220(3) k. 10401(15)
d. 4044120(5) h. 2A10(13) l. 3AAFDE(14)
9. Convertiți din baza 10 în baza cerută următoarele numere:
a. 27(10)=.........(2) c. 4510)=.........(3) e. 85(10)=.........(5)
b. 35(10)=.........(2) d. 39(10)=.........(4) f. 22(10)=.........(2)
g. 56(10)=.........(4) j. 65(10)=.........(3) m. 18(10)=.........(2)
h. 87(10)=.........(6) k. 127(10)=........(5) n. 63(10)=.........(2)
i. 79(10)=.........(2) l. 78(10)=.........(5)

10. Implementați algoritmul de conversie a unui număr din baza 10 în baza q. Testați apoi algoritmul pentru următoarele numere:
a. Intrare: n=26, q=2 -> Ieșire:11010
b. Ieșire: n=48 q=3 -> Ieșire:1210
c. Ieșire: n=167, q=5 -> Ieșire:1132
d. Ieșire: n=39, q=4 -> Ieșire:213

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