-
Une classe BigNum
Bonjour,
Je suis à la recherche d'une classe C++ pour traiter les entiers très longs signés. J'ai bien trouvé une classe très propre et très complète (pour mes besoins) mais qui toutefois ne traite que les entiers non signés (dommage pour moi, car sinon elle était parfaite). Je vous donne le lien : http://sourceforge.net/projects/cpp-bigint/
J'ai également des infos sur la lib GNU MP qui est une référence. Mais elle est beaucoup trop ambitieuse dans le contexte qui me concerne et trop complexe d'intallation et d'usage. Que je vous explique : je fais un cours de crypto. J'aimerais que les étudiants puissent développer quelques algos classiques (Euclide étendu, test de primalité, RSA etc. pour ceux qui connaissent) mais sur des problèmes de dimension réelle (des nombres de plus de 512 bits). Donc, je veux juste une classe qui offre les opérateurs arithmétiques (*,+,-,/,%), les opérateurs binaires (&,|,^,!,>>,etc.), les opérateurs relationnels (<,>,<=,>=,==,!=), et bien sûr les opérateurs habituels (=, i/o, etc.).
Je suis sûr qu'il y a des dizaines de personnes qui ont déjà écrit cette classe. Et je ne ferais pas mieux qu'eux. Et je ne ferai pas plus rapide qu'en vous posant la question. Alors, d'avance merci!
T2!
-
Ayant eu les mêmes besoin récemment (pour des nombres non signé) j'avais d'abord trouvé cette class mais faute de documentation j'ai abandonné. J'ai trouvé ceci :
http://mattmccutchen.net/bigint/
Apparemment ça propose tout ce que vous souhaitez seulement je ne peux pas garantir la qualité du code. (j'ai finalement utilisé des entiers sur 64 bits ... ça me suffisait ^^).
-
Merci beaucoup pour le lien. Les classes sont assez simples et opérationnelles. Je n'ai pas testé tous les algos dont j'ai besoin, mais ceux qui me posaient problèmes ne m'en posent plus !
-
Je l'ai testé brièvement aujourd'hui. Il y'a possibilité de convertir en string un bigInteger et vice versa. C'est bien... mais pas tout à fait xD.