Trecerea unui numar dintr-o baza in alta
Transformarea din baza 10 în baza b
Pentru a transforma un număr nnn din baza 10 într-o bază oarecare bbb, folosim un algoritm similar cu cel de extragere a cifrelor unui număr în baza 10. Singura diferență este că baza utilizată nu este 10, ci b. Iată pașii detaliați:
- Împărțim numărul nnn la baza b și notăm câtul și restul.
- Luăm câtul obținut și îl împărțim din nou la b, reținând iarăși câtul și restul.
- Repetăm procesul de împărțire a câtului la b până când obținem un cât egal cu 0.
- Cifrele reprezentării numărului în baza b sunt resturile obținute, ordonate invers față de ordinea în care au fost calculate.
Astfel, resturile formate în ordine inversă constituie numărul n scris în baza b.
while(n)
{
int cif= n % b;
if(cif > cmax)
cmax = cif;
n =n/ b;
}
Transformarea din baza b în baza 10
Pentru a transforma un număr dintr-o bază bbb în baza 10 în C++, se folosește formula generală de conversie, care implică înmulțirea fiecărei cifre a numărului cu puterea corespunzătoare a bazei bbb. Algoritmul parcurge fiecare cifră, înmulțește cu baza ridicată la poziția corespunzătoare și adună rezultatele.
rez = 0;
for( i =1 ; i <= n ; i ++)
{
cin >> x;
rez = rez * b + x;
}