2009-11-29 4 views
6

Je recherche une bibliothèque pour les grands entiers mais avec une largeur fixe (128 ou 256 serait suffisant). La raison en est que je ne veux pas d'allocation sur le tas. J'ai essayé de les faire moi-même mais mettre en œuvre la multiplication, la division et le modulo d'une manière efficace semble être assez pénible.gros entiers de longueur fixe

Est-ce que cela existe déjà quelque part?

Merci

Répondre

4

Jetez un oeil à la bibliothèque GMP: www.gmplib.org

Je cite les catégories de fonction:

faible niveau entier positif, difficiles d' utilisation, très bas frais fonctions se trouvent dans la catégorie mpn . Aucune gestion de la mémoire est effectuée ; l'appelant doit assurer suffisamment d'espace est disponible pour les résultats . (...)

Cela semble être ce dont vous avez besoin.

+0

bien! Je jette un oeil sur ce – Ben

3

Cela semble au moins prometteur (numéro 8 pour int128 library sur Google).

http://www.mx-3.cz/tringi/www/langen.php?id=int128

« Contrairement aux autres grandes classes numériques, vous pouvez travailler avec ceux-ci, tout comme avec d'autres types de POD (par exemple stocker et charger des fichiers en utilisant fwrite/fread). La représentation interne de ceux-ci est correcte 128 bits petit-boutiste entier. "

2

Si vous trouvez GMP trop compliqué à votre goût, Dave Hanson a de très jolies fonctions dans son livre C Interfaces and Implementations. Il existe une interface de bas niveau qui ne fait aucune allocation (vous contrôlez tout), et deux interfaces de niveau supérieur gèrent progressivement plus d'allocation sur le tas.

+0

je l'ai fait fonctionner avec gmp, mais je vais jeter un oeil sur ce – Ben

Questions connexes