Pergunta

Eu estou procurando uma biblioteca para grandes números inteiros, mas com largura fixa (128 ou 256 seria suficiente). A razão é que eu não quero qualquer atribuição na pilha. Eu tentei fazê-los eu mesmo, mas a multiplicação implementação, divisão e módulo de forma eficiente parece ser uma dor.

Será que isso já existe em algum lugar?

Graças

Foi útil?

Solução

Dê uma olhada na biblioteca GMP: www.gmplib.org

Citando as categorias de função:

Baixo nível positivo inteiro, duro-a-usar, sobrecarga muito baixa funções são encontrados no mpn categoria. Sem gerenciamento de memória é realizada; o chamador deve garantir há espaço suficiente disponível para o resultados. (...)

Isso parece ser o que você precisa.

Outras dicas

Esta, pelo menos, parece promissor (número hit 8 para int128 library no Google).

http://www.mx-3.cz /tringi/www/langen.php?id=int128

"Ao contrário de outras classes grande número, você pode trabalhar com estes, assim como com outros tipos POD (por exemplo, armazenamento e carregamento de arquivos usando fwrite / fread). Representação interna delas é inteiro little-endian correta de 128-bit."

Se você encontrar GMP muito complicado para o seu gosto, Dave Hanson tem algumas funções muito agradáveis ??em seu livro C Interfaces e Implementações . Há uma interface de baixo nível que não faz alocação (você controla tudo) e, em seguida, existem duas interfaces de nível superior que gerenciam cada vez mais a alocação na pilha.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top