Representação Integral Grande x86-64?
Como as bibliotecas de grandes números nativos de alto desempenho no x86-64 representam um grande número inteiro na memória? (ou varia? Existe uma maneira mais comum?)
Ingenuamente, eu estava pensando em armazená-los como seqüências de números com terminação 0 na base 264.
Por exemplo, suponhaX
está na memória como:
[8 bytes] Dn
.
.
[8 bytes] D2
[8 bytes] D1
[8 bytes] D0
[8 bytes] 0
Seja B = 264
Então
X = Dn * Bn + ... + D2 * B2 + D1 * B1 + D0
A cadeia vazia (isto é, 8 bytes de zero) significa zero.
Isso é um caminho razoável? Quais são os prós e contras deste caminho? Existe uma maneira melhor?
Como você lidaria com sinalização? O complemento de 2 trabalha com esse valor de tamanho variável?
(Encontrei isto:http://gmplib.org/manual/Integer-Internals.html O que é um membro?