grands entiers de longueur fixe [fermé]
-
08-07-2019 - |
Question
Je cherche une bibliothèque pour les grands entiers mais avec une largeur fixe (128 ou 256 suffiraient). La raison en est que je ne veux aucune allocation sur le tas. J'ai essayé de les fabriquer moi-même, mais mettre en œuvre la multiplication, la division et le modulo de manière efficace semble être assez pénible.
Cela existe-t-il déjà quelque part?
Merci
La solution
Jetez un coup d’œil à la bibliothèque GMP: www.gmplib.org
Citation à partir des catégories de fonctions:
entier positif bas, difficile à utiliser, très peu de frais généraux les fonctions se trouvent dans le MPN Catégorie. Aucune gestion de la mémoire n'est effectué; l'appelant doit s'assurer assez d'espace est disponible pour la résultats. (...)
Cela semble être ce dont vous avez besoin.
Autres conseils
Cela semble au moins prometteur (numéro 8 pour la bibliothèque int128
sur Google).
http://www.mx-3.cz /tringi/www/langen.php?id=int128
"Contrairement aux autres classes de grand nombre, vous pouvez les utiliser comme avec les autres P.O.D. types (par exemple stocker et charger à partir de fichiers en utilisant fwrite / fread). La représentation interne de ces éléments est un entier little-endian de 128 bits correct. "
Si vous trouvez GMP trop compliqué à votre goût, Dave Hanson a quelques fonctionnalités très intéressantes dans son livre Interfaces et implémentations C . Il existe une interface de bas niveau qui ne fait aucune allocation (vous contrôlez tout), puis deux interfaces de niveau supérieur qui gèrent progressivement davantage d'allocation sur le tas.