Quel est le meilleur moyen de représenter des nombres arbitrairement grands en c?

Je travaille sur un projet qui nécessite que je travaille avec des nombres plus grands que le plus grand type de données numérique de c. Je pensais utiliser des structures avec des champs de bits pour représenter cela, mais ça sent déjà mauvais. Quelqu’un a des conseils? (Ne cherchez pas de bibliothèque, mais plutôt un processus de reflection pour faire quelque chose comme ça.)

Je suggère de commencer par consulter la bibliothèque GNU MP Bignum.

Si la licence est un problème, vous devez vous lancer vous-même. Mon premier choix pour le type de données serait un simple tableau de caractères non signés avec des données supplémentaires pour indiquer la taille de ce tableau.

Quelque chose comme ça:

typedef struct { unsigned char * NumberData; size_t AllocatedSize; } MyBigNum; 

Devrait être suffisant.

La bibliothèque GNU MP Bignum serait mon premier choix.