Sunteți pe pagina 1din 4

Conversia numerelor din baza q in baza 10

Fie x un număr scris in baza q, x ș q date. Se cere transformarea lui x in baza 10.

Exemplu:

Se cere aflarea scrierii în baza 10 a numărului 2121 scris în baza 3

2121(3)=.......(10)

Teorie

Pentru a reține algoritmul ne gândim la cum putem scrie un număr în baza 10

Exemplu: Putem scrie numărul 24765 astfel:

24765=5*100+6*101+7*102+4*103+2*104
43210

Scrierea este astfel pentru că numărul este scris în baza 10. La realizarea calcului se observă că expresia
5*100+6*101+7*102+4*103+2*104 are ca rezultat valoarea 24765.

Similar este și algoritmul de conversie doar că se înlocuiește baza 10 cu baza q în care este scris numărul. Astfel:

2121 (3)=1*30+2*31+1*32+2*33 = 1*1+2*3+1*9+2*27=1+6+9+54=70(10)


3210

Deci 2121(3)=70(10).

Putem face proba

70 3
1 23 3
2 7 3
1 2 3
2 0

Așadar conversia numărului în baza 10 se face calculând suma din cifra*baza poziția cifrei

Alte exemple:

114 (5)=4*50+1*51+1*52 = 4*1+1*5+1*25=4+5+25=34(10)


210

Deci 114(5) = 34(10)

Facem proba

34 5
4 6 5
1 1 5
1 0

1002 (3)=2*30+0*31+0*32 +1*32= 2*1+0+0+1*27=2+27=29(10)


3210

Deci 1002(5) = 29(10)


Facem proba

29 3
2 9 3
0 3 3
0 1 3
1 0

10111 (2)=1*20+1*21+1*22+0*23+1*24= 1*1+1*2+1*4+0*8+1*16=1+2+4+0+16=23 (10)


43210

Deci 10111(5) = 23(10). Faceți singuri proba pentru a verifica acest calcul.

Algoritm
Variabile
x – numărul ce urmează a fi convertit
q – baza în care se realizează conversia
n – reprezentarea lui n în baza 10 (se calculează o suma punând ca termen al sumei cifra*q pozitia cifrei).
p – calculăm valoarea bazapozitia cifrei pentru fiecare termen al sumei.
Descriere: Citim x și q. Parcurgem cifrele lui x punem la fiecare pas in suma n expresia cifra* q pozitia cifrei.
Pentru a calcula qpozitia cifrei înmulțim la fiecare pas p cu baza q, inițial p este 1. Repetăm algoritmul pentru cât
până când terminăm cifrele lui x (x devine 0)

Algoritm
citesc x, q //numărul x și baza q
n←0; //inițializăm n și p (suma formata din cifra*qpozitia cifrei)
p←1;
repetă
c← x%10 //aflăm c – ultima cifra a lui x
n←n+c*p //punem în n (sumă) expresia cifra*qpozitia cifrei
p←p*q //calculăm următorul p
x←[x/10] //eliminăm ultima cifra a lui x
până când x=0 //repetăm până când parcurgem toate cifrele lui x
scrie n

Scriere condensată: Putem să scriem direct calcului lui n:

citesc x, q
n←0;
p←1;
repetă
n←n+(x%10)*p
p←p*q
x←[x/10]
până când x=0
scrie n
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. Convertiți din baza cerută în baza 10 numerele de mai jos. Faceți proba pentru fiecare număr
calculat:
a. 1010(2)=.........(10)
b. 102(3)=.........(10)
c. 11001(2)=.........(10)
d. 13(5)=.........(10)
e. 120(3)=.........(10)
f. 10110(2)=.........(10)
g. 103(4)=.........(10)
h. 25(7)=.........(10)
i. 221(3)=.........(10)
j. 213(4)=.........(10)
k. 110(2)=........(10)
l. 21(8)=.........(10)
m. 104(5)=.........(10)
n. 211(3)=.........(10)
2. Implementați algoritmul de conversie a unui număr din baza q în baza 10. Testați apoi algoritmul
pentru următoarele numere:
a. Intrare: x=11010, q=2 -> Ieșire:26
b. Ieșire: x=1210 q=3 -> Ieșire:48
c. Ieșire: x=1132, q=5 -> Ieșire:167
d. Ieșire: x=213, q=4 -> Ieșire:39

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