Was ist die beste Art und Weise beliebig große Zahlen in c darzustellen?
-
03-07-2019 - |
Frage
Ich arbeite an einem Projekt, das mich mit Zahlen größer als der größte numerische Datentyp in c arbeiten erfordert. Ich dachte an structs mit Bitfeldern mit diesen vertreten, aber es ist schon Riechen schlecht. Jeder bekam irgendwelche Tipps? (Nicht für eine Bibliothek suchen, eher ein Denkprozess hinter tun, so etwas zu gehen.)
Lösung
Ich schlage vor, zunächst die GNU MP Bignum Bibliothek überprüfen.
Wenn die Lizenzierung ist ein Problem, das Sie Ihre eigene Rolle haben. Meine erste Wahl für den Datentyp würde zusammen mit einigen zusätzlichen Daten ein einfaches Array von unsigned chars zu bezeichnen, wie groß das Feld ist.
So etwas wie folgt aus:
typedef struct
{
unsigned char * NumberData;
size_t AllocatedSize;
} MyBigNum;
Sollte ausreichend sein.
Andere Tipps
der GNU MP Bignum Bibliothek meine erste Wahl sein würde.