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

StackOverflow https://stackoverflow.com/questions/619764

  •  03-07-2019
  •  | 
  •  

Question

Je travaille sur un projet qui nécessite de travailler avec des nombres supérieurs au type de données numérique le plus grand 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 réflexion pour faire quelque chose comme ça.)

Était-ce utile?

La solution

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

Si l’octroi de licences pose un problème, vous devez procéder vous-même. Mon premier choix pour le type de données serait un simple tableau de caractères non signés avec quelques 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.

Autres conseils

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top