En C++, les types standard ne peuvent pas représenter de très grands nombres. Cela dépend bien sûr de l'implémentation. Par exemple, avec C++Builder, un entier peut être utilisé pour un nombre de 10 chiffres grand maximum. Consultant l'aide, on pourrait souhaiter utiliser le type double qui permet d'utiliser des nombres de 5.0 x 10^-324 à 1.7 x 10^308. Mais les calculs se font alors de manière approchée, ce qui n'est pas du tout souhaitable.
La solution est d'utiliser des librairies qui se chargent de représenter de très grands entiers. Il y en a plusieurs dont GMP, disponible à l'adresse
http://www.swox.com/gmp/ ou la librairie NTL
http://www.shoup.net/ntl/. La librairie NTL s'est compilée sans aucun problème sous Windows avec C++Builder, ce qui n'a pas été le cas de la première. De plus, cette librairie dispose de multiples fonctions très utiles en cryptographie.
Vous pouvez également créer votre propre librairie. Le principe est donc de créer un type de grands entiers, soit une classe, cette classe contenant toutes les opérations ; donc vous devrez définir les opérateurs de base tels +, -, /, *, % sans oublier quelques fonctions très utiles telles la fonction puissance, la fonction factorielle... Pour représenter l'entier dans cette classe, vous devrez utiliser un tableau.
Pour plus d'informations, consultez
http://www.haypocalc.com/grandnbr/