Conversion chaine en entier base 16

Messages postés
56
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
5 décembre 2005
- - Dernière réponse : cs_Matt67
Messages postés
549
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
6 mars 2010
- 9 nov. 2004 à 20:40
Bonjour,

Je souhaiterais convertir une chaine en entier base 16, tout comme le fait la fonction atoi en base 10.

Ex: j'ai la chaine "0x013036" et je souhaiterais qu'elle devienne l'entier hexa 0x013036.

Existe-t-il un moyen simple de le faire ?

merci d'avance pour votre aide

Cako 19
Afficher la suite 

5 réponses

Messages postés
398
Date d'inscription
jeudi 30 octobre 2003
Statut
Membre
Dernière intervention
15 juin 2007
2
0
Merci
ben, comme itoa en base 10, sauf qu'à la place de 10 tu mets 16
Commenter la réponse de hilairenicolas
Messages postés
364
Date d'inscription
mercredi 11 février 2004
Statut
Membre
Dernière intervention
5 octobre 2006
2
0
Merci
[C++]


#include 
#include <sstream>
#include 
using namespace std;

...

    const char* chaine = "0x00013645";
    istringstream is( chaine );
    int val;
    is >> hex >> val;
Commenter la réponse de Hylvenir
Messages postés
351
Date d'inscription
samedi 2 février 2002
Statut
Membre
Dernière intervention
6 mai 2004
2
0
Merci
utilise la fonction atoi() int
et atol() long

be linux
Commenter la réponse de lpikachu58
Messages postés
364
Date d'inscription
mercredi 11 février 2004
Statut
Membre
Dernière intervention
5 octobre 2006
2
0
Merci
[C]

    const char* chaine = "0x00013645";
    long int val = strtol( chaine, 0, 16 );
Commenter la réponse de Hylvenir
Messages postés
549
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
6 mars 2010
0
Merci
Bonsoir,

Mieux vaut tard que jaimais...
Merci. Car je ne connaissais pas strtol et la je suis reconnaissant de quelques lignes de code que j'allait taper pour me faire une fonction pareil...

Matt...
Commenter la réponse de cs_Matt67