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?
5
A
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.
9
The GNU MP Bignum Library sarebbe la mia prima scelta.
Problemi correlati
- 1. Qual è il modo migliore per rappresentare il puntatore come stringa in C++?
- 2. qual è il modo migliore per rappresentare latice esagonale
- 3. Come gestire numeri interi arbitrariamente grandi
- 4. Qual è il modo migliore per ottenere una stringa formattata per rappresentare l'offset UTC?
- 5. Qual è il modo migliore per analizzare questo in C++?
- 6. Qual è il modo migliore per scrivere commenti in C?
- 7. qual è il modo per rappresentare un UNICHAR in lua
- 8. Qual è il modo migliore per creare un valore percentuale da due numeri interi in C#?
- 9. Qual è il modo migliore per dividere file di grandi dimensioni in Python per il multiprocessing?
- 10. Qual è il modo migliore per rappresentare Middle Earth utilizzando il framework Locale di Java?
- 11. Qual è il modo migliore per impaginare una classe C#?
- 12. Qual è il modo migliore per sviluppare un'applicazione web C++?
- 13. Qual è il modo migliore per sincronizzare grandi quantità di dati in tutto il mondo?
- 14. Qual è il modo migliore per rappresentare priorità/preferenze negli oggetti?
- 15. Qual è il modo migliore per visualizzare insiemi di dati di grandi dimensioni in QT
- 16. Qual è il modo migliore per scrivere un file di grandi dimensioni su disco in PHP?
- 17. Qual è la migliore struttura dati per rappresentare una matrice triangolare superiore in Java?
- 18. Qual è il modo migliore per analizzare numeri localizzati da .NET/Razor in javascript?
- 19. Qual è il modo migliore per ottenere numeri casuali in NumPy?
- 20. Qual è il modo migliore per eseguire il riconoscimento dei numeri di base?
- 21. Il modo migliore per generare un float casuale in C#
- 22. Qual è il modo migliore per "ripristinare" le modifiche?
- 23. Qual è il modo migliore per documentare il codice f #?
- 24. Qual è il modo migliore per implementare restrizioni di input su un controllo TextBox in C#?
- 25. Quando si esegue il porting del codice Java su ObjC, qual è il modo migliore per rappresentare le eccezioni controllate?
- 26. Qual è il modo migliore per convertire enum in stringa?
- 27. Qual è il modo migliore per creare frecce in inkscape?
- 28. Qual è il modo migliore per convertire String in ByteString
- 29. Qual è il modo migliore per aggiornare l'entità in JPA
- 30. Qual è il modo migliore per ritagliare un'immagine in HTML?
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