Sunteți pe pagina 1din 2

Conversia unui numr din baza 10 in baza B

Un numr nb scris in baza B are cifre cu valori intre 0 si B-1.


Pentru a obine reprezentarea numrului n10 in baza B, trebuie sa realizam un sir
de mpriri repetate la B.
Fie n10=2490 si B=8
2490 mprit la 8 produce catul 311 si restul 2.
311 mprit la 8 produce catul 38 si restul 7
38 mprit la 8 produce catul 4 si restul 6
4 mprit la 8 produce catul 0 si restul 4
Luam resturile in ordine inversa si obinem nb=4672.

Algoritmul de mai jos urmrete exact acest tip de calcul. Se observa ca pentru
construcia lui nb trebuie sa lipim fiecare rest in fata numrului nb.

citete n10,b;
nb=0;
p10=1;
cat timp(n10!=0)
{
nb=nb+p10*(n10%b);
p10=p10*10;
n10=n10/b;
}
scrie nb.

Conversia unui numr din baza B in baza 10


Un numr nb scris in baza B are cifre cu valori intre 0 si B-1. Problema noastr
este sa determinam ce numr n10 ii corespunde lui nb pentru baza 10.

Pentru aceasta sa observam urmtorul exemplu. Un numr in baza 10,


n10=2490 poate fi scris si in forma canonica, adic
n10=2*10^3+4*10^2+9*10^1+0*10^0.
Fie nb=4672 scris in baza B=8. Pentru a converti nb in baza 10 trebuie sa l
scriem in forma canonica.
n10=4*8^3+6*8^2+7*8^1+2*8^0. Dup calcule se obine valoarea n10=2490.
Practic trebuie sa calculam o suma de produse a cifrelor din nb cu puteri ale
bazei. Vom folosi algoritmul de prelucrare a cifrelor unui numr (nb).

citete nb, b;
n10=0;
pb=1;
cat timp (nb!=0)
{
n10=n10+(nb%10)*pb;
pb=pb*b;
nb=nb/10;
}
scrie n10;

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