2009-03-06 18 views
5

Sto lavorando a un progetto che richiede di lavorare con numeri più grandi del più grande tipo di dati numerici in c. Stavo pensando di usare le strutture con campi di bit per rappresentare questo, ma già ha un cattivo odore. Qualcuno ha qualche consiglio? (Non sto cercando una biblioteca, più di un processo mentale per andare dietro a fare qualcosa del genere.)Qual è il modo migliore per rappresentare arbitrariamente grandi numeri in c?

+0

Non sono d'accordo che si tratti di un duplicato esatto del riferimento. Non sto cercando una libreria (avrei dovuto specificarlo), ma la migliore pratica di grandi dati numerici. In questo caso è su Linux, ma questo dovrebbe essere indipendente dalla piattaforma. – sdellysse

risposta

5

Suggerisco di controllare prima la libreria GNU MP Bignum.

Se la licenza è un problema, è necessario eseguire il rollover. La mia prima scelta per il tipo di dati sarebbe una semplice serie di caratteri non firmati insieme ad alcuni dati aggiuntivi per indicare la dimensione di quell'array.

Qualcosa di simile a questo:

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

dovrebbe essere sufficiente.

Problemi correlati