Как лучше всего представлять произвольно большие числа в c?
-
03-07-2019 - |
Вопрос
Я работаю над проектом, который требует, чтобы я работал с числами, большими, чем самый большой числовой тип данных в c. Я думал об использовании структур с битовыми полями, чтобы представить это, но это уже плохо пахнет. Кто-нибудь получил какие-нибудь советы? (Не нужно искать библиотеку, нужно больше думать о том, чтобы сделать что-то подобное.)
Решение
Я предлагаю сначала проверить библиотеку GNU MP Bignum.
Если лицензирование является проблемой, вы должны сделать это самостоятельно. Моим первым выбором для типа данных был бы простой массив беззнаковых символов вместе с некоторыми дополнительными данными для обозначения размера этого массива. Р>
Примерно так:
typedef struct
{
unsigned char * NumberData;
size_t AllocatedSize;
} MyBigNum;
Должно быть достаточно.
Другие советы
Библиотека GNU MP Bignum будет моим первым выбором.