Pregunta

Estoy buscando una biblioteca para enteros grandes pero con ancho fijo (128 o 256 serían suficientes). La razón es que no quiero ninguna asignación en el montón. Traté de hacerlos yo mismo, pero implementar la multiplicación, la división y el módulo de una manera eficiente parece ser bastante doloroso.

¿Esto ya existe en alguna parte?

Gracias

¿Fue útil?

Solución

Eche un vistazo a la biblioteca GMP: www.gmplib.org

Cita de las categorías de funciones:

  

Entero positivo de bajo nivel,   difícil de usar, muy baja sobrecarga   las funciones se encuentran en el mpn   categoría. No hay administración de memoria   realizado; la persona que llama debe asegurarse   hay suficiente espacio disponible para   resultados. (...)

Eso parece ser lo que necesitas.

Otros consejos

Esto al menos parece prometedor (pulse el número 8 para int128 library en Google).

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

" A diferencia de otras clases de números grandes, puede trabajar con estas al igual que con otras P.O.D. tipos (por ejemplo, almacenar y cargar archivos desde fwrite / fread). La representación interna de estos es un entero little endian de 128 bits correcto. & Quot;

Si encuentra GMP demasiado complicado para su gusto, Dave Hanson tiene algunas funciones muy buenas en su libro C Interfaces e implementaciones . Hay una interfaz de bajo nivel que no asigna (usted controla todo), y luego hay dos interfaces de nivel superior que administran progresivamente más asignación en el montón.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top