x86-64 ¿Representación de enteros grandes?

¿Cómo representan las bibliotecas de grandes enteros nativos de alto rendimiento en x86-64 un entero grande en la memoria? (¿o varía? ¿Hay una forma más común?)

De manera ingenua, estaba pensando en almacenarlos como cadenas de números terminados en 0 en la base 264.

Por ejemplo supongamosX está en la memoria como:

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

Sea B = 264

Entonces

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

La cadena vacía (es decir, 8 bytes de cero) significa cero.

¿Es esta una manera razonable? ¿Cuáles son los pros y los contras de esta manera? ¿Hay alguna manera mejor?

¿Cómo manejarías la firmeza? ¿Funciona el complemento de 2 con este valor de longitud variable?

(Encontró esto:http://gmplib.org/manual/Integer-Internals.html ¿Cuál es una extremidad?

Respuestas a la pregunta(2)

Su respuesta a la pregunta