marți, 2 octombrie 2012

L13. Conversia unui numar din baza B in baza 10

Un numar NB scris in baza B are "cifre" cu valori intre 0 si B-1. Problema noastra este sa determinam ce numar N10 ii corespunde lui NB pentru baza 10.

Pentru aceasta sa observam urmatorul exemplu. Un numar in baza 10, N10=2490 poate fi scris si in forma canonica, adica 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 il scriem in forma canonica.

N10=4*8^3+6*8^2+7*8^1+2*8^0. Dupa calcule se obtine 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 numar (NB).

citeste NB, B;

N10=0;

PB=1;

executa{

     N10=N10+(NB%10)*PB;

     PB=PB*B;

     NB=NB/10;

     }cat timp (NB!=0);

scrie N10;

Niciun comentariu:

Trimiteți un comentariu