numeri interi grandi con lunghezza fissa [chiuso]
-
08-07-2019 - |
Domanda
Sto cercando una libreria per numeri interi grandi ma con larghezza fissa (128 o 256 sarebbero sufficienti). Il motivo è che non voglio alcuna allocazione sull'heap. Ho provato a realizzarli da solo, ma implementare la moltiplicazione, la divisione e il modulo in modo efficiente sembra essere abbastanza doloroso.
Questo esiste già da qualche parte?
Grazie
Soluzione
Dai un'occhiata alla libreria GMP: www.gmplib.org
Citazione dalle categorie di funzioni:
Numero intero positivo di basso livello, sovraccarico difficile da usare, molto basso le funzioni si trovano in mpn categoria. Nessuna gestione della memoria è eseguita; il chiamante deve garantire abbastanza spazio è disponibile per risultati. (...)
Questo sembra essere ciò di cui hai bisogno.
Altri suggerimenti
Questo sembra almeno promettente (premi il numero 8 per int128 library
su Google).
http://www.mx-3.cz /tringi/www/langen.php?id=int128
" A differenza di altre classi di grandi numeri, puoi lavorare con queste proprio come con altre P.O.D. tipi (ad esempio archivia e carica da file usando fwrite / fread). La rappresentazione interna di questi è un intero little-endian a 128 bit corretto. & Quot;
Se trovi GMP troppo complicato per i tuoi gusti, Dave Hanson ha alcune funzioni molto carine nel suo libro C Interfacce e implementazioni . Esiste un'interfaccia di basso livello che non esegue alcuna allocazione (controlli tutto), quindi esistono due interfacce di livello superiore che gestiscono progressivamente una maggiore allocazione sull'heap.