Conversione da una base qualunque a quella decimale in c++

di il
2 risposte

Conversione da una base qualunque a quella decimale in c++

Ho provato ha fare un algoritmo in c ++ che mi risolvesse il problema di convertire un numero da una base qualunque a quella decimale, ma c'è qualche errore nella formula. qualcuno mi può aiutare? Grazie.

ecco l'algoritmo:
#include<iostream>
#include<stdlib.h>
#include<math.h>
#define n 8
using namespace std;
//variabili
int b;
typedef int vettore [n];
int m;
//base&bit
void base_bit(vettore V)
{
cout<<"inserisci di quante cifre è composto il numero\n";
cin>>m;
cout<<"inserisci la base del numero da convertire\n";
cin>>b;
}
//inserimento cifre 
void inserisci_cifre(vettore V)
{
register int i;
for(i=0;i<m;i++)
   {
cout<<"inserisci cifra nella pos. "<<i<<"da dx:\n";
cin>>V[i];
   }
}
//conversione
void conversione(vettore V)
{
register int i,sommatoria;
for(i=0;i<m;i++)
   {
    sommatoria += V[i]*(b^i);   
    }
cout<<"il num in decimale:"<<sommatoria<<"\n" ;
}

int main()
{
vettore V;
//base&bit
base_bit(V);
//inseisci cifre
inserisci_cifre(V);
//conversione
conversione(V);
system("PAUSE");
}

2 Risposte

  • Re: Conversione da una base qualunque a quella decimale in c++

    
    #include<iostream>
    #include<stdlib.h>
    #include<math.h>
    #define n 8
    using namespace std;
    //variabili
    int b;
    typedef int vettore [n];
    int m;
    //base&bit
    void base_bit(vettore V)
    {
    	cout<<"inserisci di quante cifre è composto il numero\n";
    	cin>>m;
    	cout<<"inserisci la base del numero da convertire\n";
    	cin>>b;
    }
    //inserimento cifre
    void inserisci_cifre(vettore V)
    {
    	register int i;
    	for(i=0;i<m;i++)
    	{
    		cout<<"inserisci cifra nella pos. "<<i<<"da dx:\n";
    		cin>>V[i];
    	}
    }
    //conversione
    void conversione(vettore V)
    {
    	register int i,sommatoria=0;
    	for(i=0;i<m;i++)
    	{
    		sommatoria += V[i]*(int)(pow((float)b,(float)i));   
    	}
    	cout<<"il num in decimale:"<<sommatoria<<"\n" ;
    }
    
    int main()
    {
    	vettore V;
    	//base&bit
    	base_bit(V);
    	//inseisci cifre
    	inserisci_cifre(V);
    	//conversione
    	conversione(V);
    	system("PAUSE");
    }
    
    due cose. Inizializza sempre le variabili. quindi sommatoria è da mettere a 0 all'inizio. x elevato y in C++ si fa con la funzione pow non con ^ che è il carattere per esprimere l'XOR tra varibili.
  • Re: Conversione da una base qualunque a quella decimale in c++

    Grazie,ora funziona alla perfezione!!!
Devi accedere o registrarti per scrivere nel forum
2 risposte