comment convertir un unsigned int en char* ?

Le
giova
Bonjour.
j'utilise CVI , son compilateur repose sur du C ANSI PURE !!!!

j'ai eu beau fouiller de fond en large, j'ai bien trouvé les fonctions
pour convertir de char* en int (via stdlib.h) mais pas l'inverse :(

ai je mal cherché , ou dois je tout me coltiner?

merci
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Éric Lévénez
Le #622931
Le 6/05/04 20:13, dans
j'ai eu beau fouiller de fond en large, j'ai bien trouvé les fonctions
pour convertir de char* en int (via stdlib.h) mais pas l'inverse :(


sprintf

--
Éric Lévénez -- Unix is not only an OS, it's a way of life.

Horst Kraemer
Le #622929
On Thu, 06 May 2004 20:13:31 +0200, giova
Bonjour.
j'utilise CVI , son compilateur repose sur du C ANSI PURE !!!!

j'ai eu beau fouiller de fond en large, j'ai bien trouvé les fonctions
pour convertir de char* en int (via stdlib.h) mais pas l'inverse :(


Si par "convertir un unsigend int en char*" tu veux dire "convertir la
valeur d'un unsigned int en chaine décimale|hexadécimale":


#include char sd[50],sh{50];
unsigned int u345678;
sprintf(sd,"%u",u);
sprintf(sh,"%08x",u);
puts(sd);
puts(sh);

--
Horst

giova
Le #622928
Horst Kraemer wrote:
On Thu, 06 May 2004 20:13:31 +0200, giova

Bonjour.
j'utilise CVI , son compilateur repose sur du C ANSI PURE !!!!

j'ai eu beau fouiller de fond en large, j'ai bien trouvé les fonctions
pour convertir de char* en int (via stdlib.h) mais pas l'inverse :(



Si par "convertir un unsigend int en char*" tu veux dire "convertir la
valeur d'un unsigned int en chaine décimale|hexadécimale":


#include char sd[50],sh{50];
unsigned int u345678;
sprintf(sd,"%u",u);
sprintf(sh,"%08x",u);
puts(sd);
puts(sh);

non je veux que 4244897280 (qui si depasse la capacité d'un int signé)

me donne "4244897280"


giova
Le #622672
Éric Lévénez wrote:

Le 6/05/04 20:13, dans

j'ai eu beau fouiller de fond en large, j'ai bien trouvé les fonctions
pour convertir de char* en int (via stdlib.h) mais pas l'inverse :(



sprintf

merci mais je ne cherche pas a afficher un int mais le convertir en

char* la nuance est de taille.


Régis Troadec
Le #622671
"giova" news:409a8ed1$0$20757$
Horst Kraemer wrote:
On Thu, 06 May 2004 20:13:31 +0200, giova

Bonjour.
j'utilise CVI , son compilateur repose sur du C ANSI PURE !!!!

j'ai eu beau fouiller de fond en large, j'ai bien trouvé les fonctions
pour convertir de char* en int (via stdlib.h) mais pas l'inverse :(



Si par "convertir un unsigend int en char*" tu veux dire "convertir la
valeur d'un unsigned int en chaine décimale|hexadécimale":


#include char sd[50],sh{50];
unsigned int u345678;
sprintf(sd,"%u",u);
sprintf(sh,"%08x",u);
puts(sd);
puts(sh);

non je veux que 4244897280 (qui si depasse la capacité d'un int signé)

me donne "4244897280"


C'est bien ce que Horst a proposé.

Là, je ne comprends pas, si ca dépasse un int signé, quelle valeur
comptes-tu récupérer ? Pour un entier non signé, le dépassement est géré
modulo la valeur maximum que peut prendre l'entier non signé, mais si ce
n'est pas signé, ce n'est pas défini par la norme, peut-etre par ton
implémentation.

Regis



Régis Troadec
Le #622670
"giova" news:409a8f84$0$20757$
Éric Lévénez wrote:

Le 6/05/04 20:13, dans giova »




j'ai eu beau fouiller de fond en large, j'ai bien trouvé les fonctions
pour convertir de char* en int (via stdlib.h) mais pas l'inverse :(



sprintf

merci mais je ne cherche pas a afficher un int mais le convertir en

char* la nuance est de taille.


int main(void)
{
/* Pas defini par la norme */
/* A tes risques et perils... */
/* Bien lire la doc de son compilo, etc, etc... */
int adr = 2345187;
char * p = (char*)adr;

return 0;
}

Regis



Régis Troadec
Le #622669
Là, je ne comprends pas, si ca dépasse un int signé, quelle valeur
comptes-tu récupérer ? Pour un entier non signé, le dépassement est géré
modulo la valeur maximum que peut prendre l'entier non signé, mais si ce
n'est pas signé, ce n'est pas défini par la norme, peut-etre par ton
implementation.

^^^^^
Fallait lire "...si cet entier EST signé"

Éric Lévénez
Le #622668
Le 6/05/04 21:18, dans
Éric Lévénez wrote:

Le 6/05/04 20:13, dans
j'ai eu beau fouiller de fond en large, j'ai bien trouvé les fonctions
pour convertir de char* en int (via stdlib.h) mais pas l'inverse :(


sprintf

merci mais je ne cherche pas a afficher un int mais le convertir en

char* la nuance est de taille.


char * est un pointeur, int est un entier. Rien à voir. C'est pourquoi je
t'ai indiqué la méthode pour convertir un nombre en chaîne. Si ce n'est pas
cela ce que tu veux faire, explique clairement ton problème.

--
Éric Lévénez -- Unix is not only an OS, it's a way of life.



Emmanuel Delahaye
Le #622666
In 'fr.comp.lang.c', giova
j'utilise CVI , son compilateur repose sur du C ANSI PURE !!!!

j'ai eu beau fouiller de fond en large, j'ai bien trouvé les fonctions
pour convertir de char* en int (via stdlib.h) mais pas l'inverse :(


Tu connais printf(). Il existe une version 'mémoire' qui s'appelle sprintf(),
et, sur les compilateurs C99, une version plus sûre qui s'appelle snprintf().


--
-ed- get my email here: http://marreduspam.com/ad672570
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
C-reference: http://www.dinkumware.com/manuals/reader.aspx?libÉ9
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/

Emmanuel Delahaye
Le #622665
In 'fr.comp.lang.c', giova
j'ai eu beau fouiller de fond en large, j'ai bien trouvé les fonctions
pour convertir de char* en int (via stdlib.h) mais pas l'inverse :(


sprintf

merci mais je ne cherche pas a afficher un int mais le convertir en

char* la nuance est de taille.


Hum. J'ai cru comprendre que tu voulais convertir une valeur numérique en
chaine de caractères. Dans ce cas, c'est bien sprintf(). Si tu veux faire
autre chose, sois plus précis.

--
-ed- get my email here: http://marreduspam.com/ad672570
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
C-reference: http://www.dinkumware.com/manuals/reader.aspx?libÉ9
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/



Publicité
Poster une réponse
Anonyme