Подтвердить что ты не робот

BigInteger в C?

Каков самый простой способ обработки огромных чисел в C? Мне нужно сохранить значения в области 1000 ^ 900...

Знает ли кто-нибудь простой способ сделать это? Любая помощь будет действительно оценена!

4b9b3361

Ответ 1

Используйте libgmp:

GMP - свободная библиотека для произвольной арифметики точности, работающая со знаками целых чисел, рациональных чисел и чисел с плавающей запятой. Практически не предел точности, кроме тех, что подразумевается доступной памятью в машине GMP работает...

Начиная с версии 6, GMP распространяется по двойным лицензиям, GNU LGPL v3 и GNU GPL v2...

Основными целевыми платформами GMP являются системы Unix-типа, такие как GNU/Linux, Solaris, HP-UX, Mac OS X/Darwin, BSD, AIX и т.д. Также известно, что Windows работает как в 32-битных и 64-битный режим...

Ответ 2

Есть несколько библиотек, которые помогут вам сделать это (произвольная точность математики):

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

Ответ 3

Существует множество библиотек для обработки огромных номеров. Вам нужна целая или арифметическая с плавающей запятой?

Вы можете посмотреть на код, встроенный в Python для задачи.

Вы можете посмотреть расширения для Perl для задачи.

Вы можете посмотреть код в OpenSSL для задачи.

Вы можете посмотреть библиотеку GNU MP (многоточность) - как упомянуто kmkaplan.