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:

  1. Împărțim numărul nnn la baza b și notăm câtul și restul.
  2. Luăm câtul obținut și îl împărțim din nou la b, reținând iarăși câtul și restul.
  3. Repetăm procesul de împărțire a câtului la b până când obținem un cât egal cu 0.
  4. 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; 
   } 

Creați un site gratuit! Acest site a fost realizat cu Webnode. Creați-vă propriul site gratuit chiar azi! Începeți