Convertion double -> dec -> hex [C] - C - Programmation
Marsh Posté le 03-01-2005 à 19:19:43
Déjà on met pas la charrue avant les boeufs, donc c'est pas "charbuff", mais "buffchar"
[] ---->
Marsh Posté le 03-01-2005 à 20:13:50
Sagoth a écrit : |
Qu'est-ce qui ne va pas avec strtol(), strtoul() ou strtod() ? Evidemment, la chaine doit être valide (tableau de char terminé par un 0).
Marsh Posté le 03-01-2005 à 22:22:40
Oui utilises strtoll ou sscanf avec %lld. Dans un long long tu peux stocker n'importe quel nombre de 18 chiffres. Après, pour recracher de l'hexa, sprintf avec %llx.
Marsh Posté le 04-01-2005 à 09:58:27
Le type long long c'est un type officiel ? il ne semble pas reconnu
Marsh Posté le 04-01-2005 à 10:48:59
strtod ca foire, il me manque un chiffre.
avecmon sscanf je n'arrive pas a gerer le type long long
Marsh Posté le 04-01-2005 à 11:04:04
long long est C99 et supporté depuis un bout de temps par des compilateurs comme GCC.
Marsh Posté le 04-01-2005 à 11:04:12
Sagoth a écrit : |
Il faut un compilateur qui supporte C99, comme gcc 3.x
Marsh Posté le 04-01-2005 à 11:19:43
donc en gros t'es sur une plateforme avec des int 64bits mais rien pour les lire ? bizarre
Marsh Posté le 04-01-2005 à 14:40:03
ok, c'est bien des int64 qu'il me fallait.
Si ca peut aider qqun voila le truc :
_var64 = _atoi64( num1 );
sprintf(num1hexa , "%I64x", __var64 );
for (iOctet=0;iOctet<MY_SIZE;iOctet++)
buffer[iOctet] = Hexa2toUchar(noBadgeHexa,iOctet);
Avec une fonction Hexa2toUchar maison.
Merci de votre aide
Marsh Posté le 03-01-2005 à 19:18:05
Bonjour.
Un probleme de conversion un peu spécial pour lequel je n'ai pas trouvé de solution dans les posts existants :
J'ai un buffer de char (appelons le charbuff)avec les valeurs suivantes :
'2' '3' '3' '0' '9' '8' ... bref etc jusqu'a l'indice 14.
Je souhaite convertir ce buffer en une valeur numerique.
Vu la taille du merdier je pense utiliser un "double" et une methode bourrine du genre :
Pour i allant de 0 a 15
val += charbuff[i] * ((2^(15-i) -1)
Fin pour
Deja c'est pas tres propre, donc si vous avez une methode toute faite pour gerer ça, je suis preneur ^^
Ensuite ce "double" doit etre convertit en valeur hexa dans un tableau de char de taille 6. Je n'ai pas trouvé d'équivalent à la fonction atoi pour les doubles, donc si vous avez une idée ou une methode je suis egalemment interressé.
Merci d'avance !