[C++] Convertisseur Héxa/Déci
saddog68
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
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.
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.
A voir également:
- [C++] Convertisseur Héxa/Déci
- Convertisseur mp3 - Télécharger - Conversion & Extraction
- Convertisseur YouTube MP3 : toutes les solutions gratuites - Guide
- Editeur hexa - Télécharger - Édition & Programmation
- Code ascii convertisseur - Guide
- Convertisseur récupération de texte - Guide
4 réponses
à mon avis, tu peux essayer en lui disant qu'il faut qu'il lise en hexadecimal, grâce une option type "flag" :
https://en.cppreference.com/w/cpp/io/ios_base/fmtflags
Et là il devrait convertir le a en valeur 10.
https://en.cppreference.com/w/cpp/io/ios_base/fmtflags
Et là il devrait convertir le a en valeur 10.
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
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