by jolgau » 12 Jan 2012, 17:30
Pentru a trece numarul in baza K :
1 . Stochezi toate cifrele numarului din baza 2 intr-un vector.
EX : 111
a[3] = {1, 1, 1};
2 . Iai o valoare care porneste de la 0;
EX:
int p = 0;
3 . Dupa ce ai facut pasul 1 si 2 reiei toate elementele vectorului si le aduni la inmultirea lui p cu 2.
Ca sa fiu mai explicit :
p = p * 2 + a[1];
p = p * 2 + a[2];
p = p * 2 + a[3];
Acest lucru este pentru a afla numarul in baza 10 dar in loc de 2 poti sa pui orice alt numar .
Mai general ar fi :
p = p * baza + a[i];
Daca nu te descurci spune-mi sa postez codul.
L.E. (-- 12 Jan 2012, 10:59 --)
Pentru a trece un numar in baza 2 :
Sa zicem ca n = 6, noi trebuie sa retinem intr-un vector n % 2 ( restul impartirii lui n la 2 pentru transformare) si la sfarsit sa inversam elementele vectorului.
Ex pentru n = 6 :
6/2 = 3 REST 0 a[ 1 ] = 0;
3/2 = 1 REST 1 a[ 2 ] = 1;
1 / 2 = 0 REST 1 a[ 3 ] = 1;
Ne oprim deoarece n-ul initial a ajuns la 0;
Avem :
a[1] = 0;
a[2] = 1;
a[3] = 1;
Dupa inversare
a[1] = 1; // a[1] = a[3];
a[2] = 1; // a[2] = a[2];
a[3] = 0; // a[3] = a[1];
0,0p / 0 votes