Qual è il modo migliore per rappresentare numeri arbitrariamente grandi in c?

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

  •  03-07-2019
  •  | 
  •  

Domanda

Sto lavorando a un progetto che mi richiede di lavorare con numeri più grandi del più grande tipo di dati numerico in c. Stavo pensando di usare le strutture con campi di bit per rappresentare questo, ma ha già un cattivo odore. Qualcuno ha qualche consiglio? (Non è alla ricerca di una biblioteca, più di un processo di pensiero da seguire facendo qualcosa del genere.)

È stato utile?

Soluzione

Suggerisco di controllare prima la libreria GNU MP Bignum.

Se la licenza è un problema, devi creare il tuo. La mia prima scelta per il tipo di dati sarebbe una semplice matrice di caratteri non firmati insieme ad alcuni dati extra per indicare quanto è grande quella matrice.

Qualcosa del genere:

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

Dovrebbe essere sufficiente.

Altri suggerimenti

La libreria GNU MP Bignum sarebbe la mia prima scelta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top