Estoy trabajando en un proyecto que requiere que trabaje con números mayores que el tipo de datos numéricos más grande en c. Estaba pensando en usar estructuras con campos de bits para representar esto, pero ya huele mal. ¿Alguien tiene algún consejo? (No busca una biblioteca, más de un proceso de pensamiento para ir detrás de hacer algo como esto.)¿Cuál es la mejor manera de representar arbitrariamente números grandes en c?
5
A
Respuesta
5
Le sugiero que compruebe primero la biblioteca GNU MP Bignum.
Si el licenciamiento es un problema, tiene que hacer el suyo propio. Mi primera opción para el tipo de datos sería una simple matriz de caracteres sin signo junto con algunos datos adicionales para indicar qué tan grande es esa matriz.
Algo como esto:
typedef struct
{
unsigned char * NumberData;
size_t AllocatedSize;
} MyBigNum;
debería ser suficiente.
9
The GNU MP Bignum Library sería mi primera opción.
Cuestiones relacionadas
- 1. enteros arbitrariamente grandes en C#
- 2. ¿cuál es la mejor manera de representar latice hexagonal
- 3. ¿Manejar números grandes en C++?
- 4. Aritmética con enteros arbitrariamente grandes en PHP
- 5. ¿Cuál es la mejor manera de representar una lista inmutable en .NET?
- 6. Cómo manejar enteros arbitrariamente grandes
- 7. ¿Cuál es la biblioteca de números grandes (de precisión arbitraria) estándar (o mejor respaldada) para Lua?
- 8. ¿Cuál es la mejor manera de escribir comentarios en C?
- 9. ¿Cuál es la mejor manera de representar un intervalo de tiempo en SQL Server CE?
- 10. ¿Cuál es la mejor manera de representar las prioridades/preferencias en los objetos?
- 11. ¿Cuál es la mejor forma portátil de representar puntero como cadena en C++?
- 12. ¿Cuál es la mejor manera de manejar buffers grandes en una pila de protocolos en capas?
- 13. ¿Cuál es la mejor manera de representar las reglas de horario de verano?
- 14. ¿Cuál es la mejor manera de sincronizar grandes cantidades de datos en todo el mundo?
- 15. ¿Cuál es la mejor manera de visualizar grandes conjuntos de datos en QT
- 16. ¿Cuál es la mejor manera de enviar grandes lotes de correos electrónicos en ASP.NET?
- 17. ¿Cuál es la mejor manera de almacenar archivos grandes en Plone 3?
- 18. ¿Cuál es la mejor manera de dividir archivos grandes en Python para multiprocesamiento?
- 19. ¿Cuál es la mejor manera de analizar los números localizados de .NET/Razor en javascript?
- 20. ¿Cuál es la mejor manera de devolver grandes cantidades de datos binarios de un servicio web?
- 21. ¿Cuál es la mejor manera de dibujar un gráfico con grandes cantidades de datos?
- 22. Cuál es la mejor manera de exportar grandes catálogos de Magento
- 23. ¿Cuál es la mejor manera de obtener números aleatorios en NumPy?
- 24. ¿Cuál es la mejor manera de implementar restricciones de entrada en un TextBox en C#?
- 25. C: Impresión de grandes números de
- 26. ¿Cuál es una buena manera de representar las fuentes delineadas?
- 27. ¿Cuál es la mejor manera de implementar params en JavaScript?
- 28. ¿Cuál es la mejor manera de comparar programas en Windows?
- 29. ¿Cuál es la mejor manera de dibujar en la consola?
- 30. ¿Cuál es la mejor manera de determinar números duplicados de tarjetas de crédito sin almacenarlos?
No estoy de acuerdo en que este sea un duplicado exacto de la referencia. No estoy buscando una biblioteca (debería haber especificado eso), sino la mejor práctica de grandes datos numéricos. En este caso, está en Linux, pero esto debe ser independiente de la plataforma. – sdellysse