skotmarud
Messages postés116Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention26 janvier 2008
-
10 août 2005 à 07:15
skotmarud
Messages postés116Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention26 janvier 2008
-
10 août 2005 à 19:33
bonjour,
je veux convertir de l'hexadecimal en decimal et j'ai trouver dans le forum
une fonction qui fonctionne à moitier en fait ,
int valeur= strtol ( gh, &gh, 16);
aparament elle est limitée à 7FFFFFFF = 2147483647
je veux pouvoir convertir un nombre beaucoup plus grand,
y a t'il une solution s'il vous plait ?
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 20065 10 août 2005 à 08:12
strtol retourne un long (strto[l], string to long), sur ton systeme ca
doit etre un entier signé sur 32 bits, la valeur maximun représentable
est (2^31 -1) == 2147483647, utilises strtoul (unsigned long) pour
pouvoir aller jusqu'a 4294967296.
xterminhate
Messages postés371Date d'inscriptiondimanche 4 janvier 2004StatutMembreDernière intervention23 septembre 2009 10 août 2005 à 10:43
Je vais finir par reprendre gout à manipuler du char* ! Tu n'as peut etre pas besoin de ta variable c (?), j'aurais directement utilisé la variable pszHexa dans ta boucle puisque le pointeur est passé en copie. Qu'en penses tu ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 10 août 2005 à 11:00
certain que on peut utiliser direct pszHexa au lieu de 'c' mais ensuite c'est moins long à écrire, je suis grave fainéant.... dans tous les cas le compilo produira le même code.
steve > c'est plus rapide, on empile 1 param au lieu de 3 pour strto*.