BigInteger в C?

Ответ находится в спецификации языка. Синтаксис для приложений функций таков:

SimpleExpr    ::=  SimpleExpr1 ArgumentExprs
ArgumentExprs ::=  ‘(’ [Exprs] ‘)’
                |  ‘(’ [Exprs ‘,’] PostfixExpr ‘:’ ‘_’ ‘*’ ‘)’
                |  [nl] BlockExpr
Exprs         ::=  Expr {‘,’ Expr}

Таким образом, аргументами функции могут быть одно или несколько выражений, окруженных ( ), или один BlockExpr если функция принимает один аргумент.

Переходя к разделу о блоках , мы находим это:

BlockExpr  ::=  ‘{’ CaseClauses ‘}’
             |  ‘{’ Block ‘}’
Block      ::=  BlockStat {semi BlockStat} [ResultExpr]

Частичные функции определяются с помощью опции CaseClauses, поэтому они должны быть окружены { [117 ], чтобы сделать выражение блока. Это выражение блока является действительным аргументом для функции с одним параметром.

Функции, которые принимают несколько параметров, всегда должны использовать ( ).

27
задан OmG 27 December 2016 в 03:12
поделиться

3 ответа

Использование libgmp:

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

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

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

34
ответ дан gnat 28 November 2019 в 05:08
поделиться

Существует несколько библиотек, чтобы помочь Вам сделать это (математика произвольной точности):

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

11
ответ дан cletus 28 November 2019 в 05:08
поделиться

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

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

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

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

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

5
ответ дан Jonathan Leffler 28 November 2019 в 05:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: