Boa tarde a todos. Bom, tenho que fazer um programa conversor de bases e estou com duvida nesse seguinte codigo
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
void baseb(int b, string fi, unsigned int nb, string &f){
int p = nb % b; nb = nb / b;
if ( nb > 0) baseb(b, fi, nb, f);
f=f+fi[p];
}
int main(){
int b, nb;
cin>>b;
cin>>nb;
string fi = "0123456789ABCDEF", f = "";
baseb(b, fi, nb, f);
cout << endl;
cout << "Decimal number "<< nb <<" in Base-"<< b << " is "<< f << endl;
// Result: Decimal number 2008 in Base-16 is 7D8
cin.get();
cin>>b;
return 0;
}
No procedimento baseb, o que exatamente significa f = f+fi[p]? Como na conversao para hexadecimal ele consegue jogar exatamente as letras no lugar dos numeros? Isso é alguma função pronta? pois meu professor proibiu de usar funcoes como hex ou outras prontas.
Pergunta
Rycco
Boa tarde a todos. Bom, tenho que fazer um programa conversor de bases e estou com duvida nesse seguinte codigo
#include <cstdlib> #include <iostream> #include <math.h> using namespace std; void baseb(int b, string fi, unsigned int nb, string &f){ int p = nb % b; nb = nb / b; if ( nb > 0) baseb(b, fi, nb, f); f=f+fi[p]; } int main(){ int b, nb; cin>>b; cin>>nb; string fi = "0123456789ABCDEF", f = ""; baseb(b, fi, nb, f); cout << endl; cout << "Decimal number "<< nb <<" in Base-"<< b << " is "<< f << endl; // Result: Decimal number 2008 in Base-16 is 7D8 cin.get(); cin>>b; return 0; }No procedimento baseb, o que exatamente significa f = f+fi[p]? Como na conversao para hexadecimal ele consegue jogar exatamente as letras no lugar dos numeros? Isso é alguma função pronta? pois meu professor proibiu de usar funcoes como hex ou outras prontas.
Obrigado
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.