Reprezentacja dużej liczby całkowitej x86-64?

W jaki sposób wysokowydajne biblioteki natywne typu big-integer dla x86-64 stanowią dużą liczbę całkowitą w pamięci? (czy się różni? Czy istnieje najbardziej powszechny sposób?)

Naiwnie myślałem o przechowywaniu ich jako 0-zakończonych ciągów liczb w bazie 264.

Załóżmy na przykładX jest w pamięci jako:

[8 bytes] Dn
.
.
[8 bytes] D2
[8 bytes] D1
[8 bytes] D0
[8 bytes] 0

Niech B = 264

Następnie

X = Dn * Bn + ... + D2 * B2 + D1 * B1 + D0

Pusty ciąg (tj. 8 bajtów zera) oznacza zero.

Czy to rozsądny sposób? Jakie są plusy i minusy tego sposobu? Czy jest lepszy sposób?

Jak poradziłbyś sobie z podpisaniem umowy? Czy uzupełnienie 2 działa z tą wartością zmiennej długości?

(Znajdź to:http://gmplib.org/manual/Integer-Internals.html Co to za kończyna?)

questionAnswers(2)

yourAnswerToTheQuestion