Informatică, întrebare adresată de farcasoana99, 8 ani în urmă

Se dă un număr n în baza 16. Să se transforme acest număr în baza 10, folosind un subprogram recursiv. C++

Răspunsuri la întrebare

Răspuns de pmarian98
0

Răspuns:

#include <iostream>

#include <cstring>

using namespace std;

int main()

{

   char b16[100];

   int nr=0,p=1,i;

   cin.get(b16,100); ///numarul in baza 16

   for(i=strlen(b16)-1;i>=0;i--)

   {

       switch(b16[i]) ///

       {

       case 'A':nr+=10*p;break;

       case 'B':nr+=11*p;break;

       case 'C':nr+=12*p;break;

       case 'D':nr+=13*p;break;

       case 'E':nr+=14*p;break;

       case 'F':nr+=15*p;break;

       default:nr+=int(b16[i]-'0')*p; ///daca este cifra

       }

       p*=16; ///baza din care se transforma numarul

   }

   cout<<nr;

   return 0;

}

Explicație:

Alte întrebări interesante