(re) bonjour,
Hé oui, c'est la journée du traitement de chaines, hi.
Ce coup-ci, j'ai de l'hexa sur 12 caractères que je veux convertir en numérique: 009064F00000.
J'ai essayé: strtoul(strTmp,NULL,16); mais ça renvoie un long, ce qui n'est pas asser long pour stocker le résultat.
J'ai transformé une fonction que j'ai trouvée:
Mais si je fait:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 //Conversion de base n en dec double BaseNToDec(char *TablDep, int inBase) { double inTotal=0; int i=2,Valeur,inValTabl; float flPuissance; while(TablDep[i]!=0) { flPuissance = pow(inBase,(strlen(TablDep)-i-1)); inValTabl = TablDep[i]; Valeur = (inValTabl-48)*flPuissance; inTotal += Valeur; i++; } return inTotal; }
Ca me renvoie: (0)(2.000001)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 code = BaseNToDec(strTmp,16); printf("(%ld)(%lf)",code,code);
Quelqu'un peut-il m'aider ?
Merci d'avance.
Partager