Speichern von sehr großen zahlen in ein integer in C
Brauche ich zum speichern einer sehr großen Zahl als ganze Zahl in einem C-Programm unsigned long int
ist noch zu klein, ich brauche einen sehr großen Daten-Typ, der wird immer noch funktionieren mit der modulo-operator (%).
- Wie wäre unsigned long long? Das ist oft-64-bit.
- Verwenden Sie eine beliebige precision integer library (einige links hier)
- Manchmal ist die modulo-operation selbst vermieden werden können. Wenn Sie das tun können Sie alle Ihre arithmetischen mittels modulo-Arithmetik, und Sie nur nehmen würde, die modulo des Ergebnisses, dann die modulo-operation gelöscht werden können.
- Schreiben Sie Ihre eigene "double precision lang" zu unterstützen. Es ist nicht so schwer.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es mehrere Bibliotheken, die dies tun können
Wenn Sie es brauchen für kryptographische Zwecke (z.B. RSA, wie angedeutet, durch die Ihr Bedürfnis nach der modulo-Arithmetik), OpenSSL BN bestens geeignet
<stdint.h>
und verwendenuint64_t
wenn Ihr C-Implementierung das unterstützt. Möglicherweise müssen Sie auch<inttypes.h>
- und der format-Spezifizierer, die es bietet, wenn Sie Lesen müssen, große zahlen von der Eingabe.