cs_HumbuckerSingleCoil
Messages postés4Date d'inscriptionlundi 15 juin 2009StatutMembreDernière intervention12 décembre 2009
-
27 juil. 2009 à 12:56
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
16 août 2009 à 10:31
Bonjour.
J'ai réalisé un algorithme de décomposition d'un nombre entier en un produit de facteurs premiers en C pour un de mes logiciels. Ca marche pour tous les nombres, mais le problème est que lorsque le nombre dépasse la valeur maximale pour un long int, ça met des choses incohérentes.
Je m'explique :
le logiciel, réalisé avec l'API WIN32 affiche ce que l'utilisateur a entré avant d'afficher le résultat.
Si l'utilisateur tappe :
FstFact(738838382838)
(FstFact, c'est le nom de la fonction qui permet de décomposer un nombre en facteurs premiers)
Ca affiche :
1.04008e+008 = 2 * 11 * 4.72763e+006
Le résultat est bien bon puisque quand on multiplie 2 par 11 par 4.72763e+006, on trouve bien 1.04008e+008.
Mais le problème vient du fait que : 1.04008e+008 n'est pas le nombre entré par l'utilisateur qui est : 738838382838.
Cela s'explique par le fait que ce nombre est plus grand que la valeur maximale de stockage pour un long int et du coup, ça ne prend pas la bonne valeur.
Je voudrais donc savoir s'il existe une méthode en assembleur pour pouvoir calculer avec des nombres pouvant posséder 32 chiffres comme le fait la calculatrice de Windows XP (du moins, la version que j'ai).
C'est à dire une méthode de stockage puis de récupération de valeurs.
Merci de votre aide.
La culture, c'est comme la confiture : moins on en a, plus on l'étale...
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 16 août 2009 à 10:31
Quand on veut un nombre limité à un certain format, on en controle la saisie.
Pour les grands nombres, tu crées un type perso ou tu utilises une bibli toute faite comme il en existe sur le web.