¿Cuál es la mejor manera de representar números arbitrariamente grandes en c?

StackOverflow https://stackoverflow.com/questions/619764

  •  03-07-2019
  •  | 
  •  

Pregunta

Estoy trabajando en un proyecto que me obliga a trabajar con números más grandes que el tipo de datos numérico 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 busco una biblioteca, es más un proceso de pensamiento para ir detrás de hacer algo como esto).

¿Fue útil?

Solución

Le sugiero que primero revise la biblioteca GNU MP Bignum.

Si la licencia es un problema, tiene que hacer su propio rollo. Mi primera opción para el tipo de datos sería una simple matriz de caracteres sin firmar 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.

Otros consejos

La Biblioteca de GNU MP Bignum sería mi primera opción.

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