x86-64 Big Integer-Darstellung?
Wie stellen native Big-Integer-Bibliotheken mit hoher Leistung auf x86-64 eine Big Integer im Speicher dar? (oder variiert es? Gibt es einen gängigen Weg?)
Naiv dachte ich darüber nach, sie als 0-terminierte Zahlenfolgen in Basis 2 zu speichern64.
Nehmen wir zum Beispiel anX
ist in Erinnerung als:
[8 bytes] Dn
.
.
[8 bytes] D2
[8 bytes] D1
[8 bytes] D0
[8 bytes] 0
Sei B = 264
Dann
X = Dn * Bn + ... + D2 * B2 + D1 * B1 + D0
Die leere Zeichenfolge (d. H. 8 Bytes von Null) bedeutet Null.
Ist das ein vernünftiger Weg? Was sind die Vor- und Nachteile dieses Weges? Gibt es einen besseren Weg?
Wie würden Sie mit Unterschriften umgehen? Funktioniert das Zweierkomplement mit diesem variablen Längenwert?
(Ich habe es gefunden:http://gmplib.org/manual/Integer-Internals.html Was ist ein Glied?)