Stockage très très grand nombres dans mémoire

cs_HumbuckerSingleCoil Messages postés 4 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 12 décembre 2009 - 27 juil. 2009 à 12:56
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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...

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous