Conversion Base C++

Fermé
Skeletyon Messages postés 1552 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 30 décembre 2013 - 25 nov. 2009 à 12:23
Skeletyon Messages postés 1552 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 30 décembre 2013 - 25 nov. 2009 à 13:43
Bonjour à tous,
Je cherche une fonction me permettant de convertir un nombre saisi par l'utilisateur dans une autre base.

Ex: l'utilisateur saisit 15, il dit que le nombre est en base décimale et qu'il me les convertisse en hexa, octale et binaire.

J'ai pour l'instant été obligé de réécrire les fonctions pour tous les cas:
case 1:
i=0; // positionnement dans le tableau de caractères
NOMBR2=NOMBR;
do //Binaire
{
RESULTAT[i] = BINAIRE[NOMBR2 % BASE2];
NOMBR2 = NOMBR2/BASE2; // deux entiers entrainent une division entière
i++;
}
while (NOMBR2 != 0);
RESULTAT[i]='\0'; //fin de la chaine de caractère
INVERSE (RESULTAT);

cout << RESULTAT << " en binaire" << endl;
etc pour les autres bases.

- Je cherche à optimiser tout ça et de faire une fonction générique pour ne pas être obligé de réécrire tout ça à chaque fois.

Je ne maîtrise pas encore tout à fait les entrées-sorties et je voudrais bien une petite lumière :=)
Merci d'avance et bon appétit pour ceux qui vont manger ^^


2 réponses

nobie-cs Messages postés 155 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 15 mai 2010 17
25 nov. 2009 à 12:31
comme il va savoir que c'est du décimale note que 15 existe en hexa et on octale
pour convertir de base 10 au autre
int nb=15;
int base2;
int cpt=1; 
do{
base2 = base2 + (cpt *(nb%2))
nb= nb / 2;
}while(nb!=0)
0
C'est quoi cette horreur ?!!!
Ca se fait en 1 ligne, vu que la fonction est en standard !!!
Grave ...
0
Skeletyon Messages postés 1552 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 30 décembre 2013 156
25 nov. 2009 à 13:43
Horreur où?
Je cherche avant tout à comprendre, les ceci c'est de la merde ça se fait autrement... ne sont utiles que si les autrement sont dits...
Je vais essayer ça nobie, merci de m'aider.
0