Convertir une chaine de caratère en int sans perte de données
wantofirst
Messages postés7Date d'inscriptionjeudi 29 juin 2006StatutMembreDernière intervention21 juillet 2006
-
4 juil. 2006 à 18:13
wantofirst
Messages postés7Date d'inscriptionjeudi 29 juin 2006StatutMembreDernière intervention21 juillet 2006
-
5 juil. 2006 à 18:04
bonjour tous le monde
j'ai le problème suivant:
j'avais une chaine de caractère (0x3de4a7fa) que je devait l'ecrire en (0xfaa7e43d);ce que j'ai réussi a faire.
j'ai une fonction qui me permet de convertir un int de la forme 0x3de4a7fa en un réel.le problème est que ma première fonction me donne une chaine de caractère.
Donc j'aimerai savoir si on a la possiblité de convertir une chaine de caractère en int sans perte de donnée;pour que ma deuxième fonction puisse faire son travail.
PI: j'ai essayer atoi et atof mais ça ne marche pas
je vous remercie de m'avoir lu
l'homme qui marche debout
Wangrin The First
A voir également:
Convertir une chaine de caratère en int sans perte de données
wantofirst
Messages postés7Date d'inscriptionjeudi 29 juin 2006StatutMembreDernière intervention21 juillet 2006 5 juil. 2006 à 09:37
je vois bien ton exmaple
voila mon example
char *CharHex="0x3de4a7fa"
int EntierEnHex=atoi(CharHex)
la convertion est faite mais y'a troncature de char vers int.Si tu vois un peux ce que je veux dire
l'homme qui marche debout
Wangrin The First
xboxut
Messages postés172Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention27 novembre 20091 5 juil. 2006 à 10:20
atoi marchera pas, il prend des nombres en base decimal :s.
le truc a faire est d'utiliser un int, d analyser chaque lettre de ton nombre en hexa,et pour chaque lettre tu vas additioner la valeur qui lui correspond en decimal * le nombre de puissance de 16
pour bien comprendre un petit exemple (en decimal :p )
-> char nombre[]="25384";
-> int inombre=0;
-> puissance=1;
->chiffre=0;
tu trouve la fin de la chaine -> '4'
tant que l'on a pas atteint le debut de la chaine
{
chiffre=on transorme le chiffre de ta chaine en int -> on peut le faire ac atoi pour les truc base 10 sinon par une fonction ac un switch et 16 case;