Erreur dans programme en c++ et GMP [Résolu]

Signaler
Messages postés
2
Date d'inscription
mardi 4 février 2020
Statut
Membre
Dernière intervention
5 février 2020
-
Messages postés
313
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
20 avril 2020
-
svp si c'est possible vous pouvez m'aider a regler l'erreur dans ce
programme.
c'est un programme en C++ en utilisant la bibliothèque GMP.
L'erreu c'est : warning: overflow on implicite constant conversation [-overflow]
For ( int u( 99999999991); u<100000000001; u+=2)

5 réponses

Messages postés
14665
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2020
143
Si c'est un int 32 bits, il est limité à 2147483647 (2^31-1).
Messages postés
2
Date d'inscription
mardi 4 février 2020
Statut
Membre
Dernière intervention
5 février 2020

Et comment je fais pour utiliser des nombre de 32 caractère ou de 160 bits svp
Messages postés
313
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
20 avril 2020
2
Bonjour,
Une très bonne solution consiste à utiliser GMP en variante proposée par Paul Herman. À l'adresse suivante : https://codes-sources.commentcamarche.net/source/100649-neuf-9-une-demonstration-amusante-avec-gmp il y a une démonstration de cette utilisation.

Messages postés
14665
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2020
143
Les nombres ne sont pas stockés sous forme de texte en mémoire.
Normalement avec un entier 64 bits, ça devrait pouvoir se faire.
Messages postés
313
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
20 avril 2020
2
Si on veut simplement utiliser des nombres entiers positifs ou négatifs ayant 32 chiffres décimaux en écriture usuelle on peut utiliser une bibliothèque d'entiers sur 128 bits : il y en a une qui est disponible sur CodeS-SourceS. Mais si on veut utiliser des entiers de taille aussi grande que nécessaire le plus commode est d'utiliser la variante de GMP développée par Paul Herman, c'est très facile et très puissant : des nombres de 100 ou 500 chiffres décimaux, ou plus, y sont employés aussi simplement que de simples entiers natifs.