Каков самый простой способ обрабатывать огромные числа в C? Мне нужно хранить значения в Области 1000^900
или в более удобочитаемой форме 10^2700
.
Кто-нибудь знает простой способ сделать это? Любая помощь будет очень признательна!
Каков самый простой способ обрабатывать огромные числа в C? Мне нужно хранить значения в Области 1000^900
или в более удобочитаемой форме 10^2700
.
Кто-нибудь знает простой способ сделать это? Любая помощь будет очень признательна!
Используйте libgmp:
GMP - это бесплатная библиотека для арифметики произвольной точности, работающей с целыми числами со знаком, рациональными числами и числами с плавающей запятой. Практических ограничений на точность нет, кроме тех, которые подразумеваются доступной памятью в машине, на которой работает GMP ...
Начиная с версии 6, GMP распространяется под двумя лицензиями: GNU LGPL v3 и GNU GPL v2 ...
Основными целевыми платформами GMP являются системы типа Unix, такие как GNU / Linux, Solaris, HP-UX, Mac OS X / Darwin, BSD, AIX и т.д. битовый режим ...
Есть несколько библиотек, которые помогут вам в этом (математика произвольной точности):
Если предположить, что это не связано с работой (то есть вы делаете это для развлечения, или это хобби, или просто возможность чему-то научиться), создание библиотеки для математических вычислений с произвольной точностью является относительно интересным проектом. Но если вам нужно полностью полагаться на это и вас не интересуют гайки и болты, просто используйте библиотеку.
Существует ряд библиотек для работы с огромными числами. Вам нужна арифметика с целыми числами или числами с плавающей запятой?
Вы можете посмотреть код, встроенный в Python для этой задачи.
Вы можете посмотреть расширения для Perl для этой задачи.
Вы можете посмотреть код в OpenSSL для этой задачи.
Вы можете посмотреть библиотеку GNU MP (multi-precision) - как упоминалось kmkaplan.
BIGINTs
или выполнять какие-либо вычисления с ними, что мне делать?
- person phougatv; 21.02.2016
Вы также можете попробовать BIGNUM в openssl, см. https://www.openssl.org/docs/man1.0.2/man3/bn.html, https://www.openssl.org/docs/man1.1.1/man3/, Преобразовать большое число, указанное в виде строки, в OpenSSL BIGNUM для получения подробной информации.