2009-11-29 4 views
6

Я ищу библиотеку для больших целых чисел, но с фиксированной шириной (128 или 256 будет достаточно). Причина в том, что я не хочу выделения в кучу. Я попытался сделать их сам, но реализация умножения, деления и по модулю эффективного способа кажется довольно больной.большие целые числа с фиксированной длиной

Это уже существует где-то?

Благодаря

ответ

4

Взгляните на библиотеку GMP: www.gmplib.org

Цитирование из функциональных категорий:

низкого уровня положительного целого числа, труднодоступные использование, очень низкие накладные расходы функции находятся в категории mpn . Управление памятью не выполнено ; вызывающий должен обеспечить достаточно места для результатов . (...)

Это похоже на то, что вам нужно.

+0

приятно! Я смотрю на это – Ben

3

Это по крайней мере выглядит перспективным (номер 8 для int128 library в Google).

http://www.mx-3.cz/tringi/www/langen.php?id=int128

«В отличие от других больших классов чисел, вы можете работать с ними так же, как и с другими типами POD (например, сохранять и загружать из файлов с помощью FWRITE/Fread). Внутреннее представление них правильный 128-бит мало-endian integer. "

2

Если вы обнаружите, что GMP слишком сложный для вашего вкуса, у Дейва Хэнсона есть некоторые очень приятные функции в его книге C Interfaces and Implementations. Существует интерфейс низкого уровня, который не выделяет выделение (вы все контролируете), а затем есть два более высокоуровневых интерфейса, которые постепенно управляют распределением в куче.

+0

Я сделал это с gmp, но я посмотрю на это – Ben

Смежные вопросы