Transformer un grand hexa en numérique
(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:
Code:
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;
} |
Mais si je fait:
Code:
1 2
| code = BaseNToDec(strTmp,16);
printf("(%ld)(%lf)",code,code); |
Ca me renvoie: (0)(2.000001)
Quelqu'un peut-il m'aider ?
Merci d'avance.