Как лучше всего представлять произвольно большие числа в c?

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

  •  03-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

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

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top