[C++] Convertisseur Héxa/Déci

Bonjour,

Je suis actuellement entrain de tenter de créer un convertisseur Hexadécimal --> Décimal et inverse.
J'ai repris un ancien modèle que j'avais fait qui permettait de convertir du Décimal en Binaire et inverse également car je sais que le principe est quasiment le même.

Cependant je bloque avec les caratère A,B,C,D,E,F de l'héxadécimal que je n'arrive pas à convertir.

Pouvez-vous me donner un petit coup de pouce ?

Voici mon programme tel qu'il est en ce moment:

#include <iostream>
#include <math.h>
#include <string>
#include <sstream>

using namespace std;

int main()
{
char choix ;
string hexadecimal ;
int nb ;

choix = 'Z' ;
while (choix != 'Q' && choix != 'q')
{

cout << endl << "conversion decimal vers hexadecimal ........ 1" ;
cout << endl << "conversion hexadecimal vers decimal ........ 2" ;
cout << endl << "quitter .................................... Q" ;
cout << endl << "votre choix ................................ " ;
cin >> choix ;

if (choix == '1')
{
hexadecimal = "" ;
cout << "entrer un nombre decimal = " ;
cin >> nb ;
while (nb != 0);
{
char c = (nb%16) + '0' ;
hexadecimal = c + hexadecimal ;
nb = nb / 16 ;
}
cout << "conversion en hexadecimal " + hexadecimal ;
}
else
{
if (choix == '2')
{
nb = 0 ;
int k = 0 ;
double b = 16;
cout << "entrer un nombre hexadecimal = " ;
cin >> hexadecimal ;
while (hexadecimal.size() > 0)
{
string s = hexadecimal.substr(hexadecimal.size()-1, 1) ;
istringstream myStream(s);
int result ;
myStream>>result ;
nb += result * pow(b, k) ;
hexadecimal = hexadecimal.substr(0, hexadecimal.size()-1) ;
k++ ;

}

cout << "conversion en base 10 = " << nb ;
}

}
}
}

Merci d'avance !

PS: Je tiens à m'excuser si le sujet à déjà été traiter sur un autre post. J'ai un peu regarder mais je n'ai pas trouver.

4 réponses

  1. Bonsoir,

    Merci pour ta réponse Char Snipeur, je vais essayer de voir avec ce que tu m'as dis.

    Cependant, n'existe t il pas un moyen de déclarer ces variables en tant qu'entier, puis les convertir en chaine avec seulement les #include que j'ai déjà mis ? Sans passer par le typdef ou le #include <iomanip> que je n'ai pas encore appris.
    à savoir:
    #include <iostream>
    #include <math.h>
    #include <string>
    #include <sstream>

    Merci d'avance
    0
    1. Toujours pas de réponse ?

      Pourtant je pense pas que ça soit si difficile non ?
      0
      1. Contributeur
        utilises ce que je t'ai donnée, c'est simple. Je ne suis même pas sur qu'il y ait besoin d'inclure le iomanip.
        0