Как лучше всего представлять произвольно большие числа в c? - PullRequest
5 голосов
/ 06 марта 2009

Я работаю над проектом, который требует, чтобы я работал с числами, большими, чем самый большой числовой тип данных в c. Я думал об использовании структур с битовыми полями, чтобы представить это, но это уже плохо пахнет. Кто-нибудь получил какие-нибудь советы? (Не нужно искать библиотеку, нужно больше думать о том, чтобы сделать что-то подобное.)

Ответы [ 2 ]

9 голосов
/ 06 марта 2009

Библиотека GNU MP Bignum будет моим первым выбором.

5 голосов
/ 06 марта 2009

Предлагаю сначала проверить библиотеку GNU MP Bignum.

Если проблема с лицензированием, вы должны сделать это самостоятельно. Моим первым выбором для типа данных был бы простой массив беззнаковых символов вместе с некоторыми дополнительными данными для обозначения размера этого массива.

Примерно так:

typedef struct 
{
  unsigned char * NumberData;
  size_t          AllocatedSize;
} MyBigNum;

должно быть достаточно.

...