BigInteger in C?

Qual è il modo più semplice per gestire numeri enormi in C? Ho bisogno di memorizzare valori nell’area 1000 ^ 900 …

Qualcuno sa di un modo semplice per farlo? Qualsiasi aiuto sarebbe molto apprezzato!

Usa libgmp :

GMP è una libreria gratuita per aritmetica di precisione arbitraria, che funziona su interi con segno, numeri razionali e numeri in virgola mobile. Non esiste un limite pratico alla precisione eccetto quelli impliciti dalla memoria disponibile nella macchina GMP eseguita su …

Dalla versione 6, GMP è distribuito sotto le licenze doppie, GNU LGPL v3 e GNU GPL v2 …

Le principali piattaforms di destinazione di GMP sono sistemi di tipo Unix, come GNU / Linux, Solaris, HP-UX, Mac OS X / Darwin, BSD, AIX, ecc. È anche noto che funziona su Windows sia a 32 bit che a 64- modalità bit …

Ci sono alcune librerie per aiutarti a fare questo (matematica matematica di precisione arbitraria):

  • BigDigits ;
  • iMath ;
  • decNumber ; e
  • senza dubbio altri.

Supponendo che questo non sia correlato al lavoro (cioè lo stai facendo per divertimento o è un hobby o solo un’opportunità per imparare qualcosa), la codifica di una libreria per matematica di precisione arbitraria è un progetto relativamente interessante. Ma se è necessario fare affidamento su di esso e non sono interessati alla bulloneria, basta usare una libreria.

Ci sono un certo numero di librerie per la gestione di numeri enormi in giro. Hai bisogno di aritmetica integer o floating point?

Si potrebbe guardare il codice incorporato in Python per l’attività.

Puoi guardare le estensioni di Perl per l’attività.

Si potrebbe guardare il codice in OpenSSL per l’attività.

Si potrebbe guardare la libreria GNU MP (multi-precision) – come menzionato da kmkaplan.