Есть ли класс BigInteger в PHP?

Существует ли класс BigInteger в PHP? Если да, то каким образом я могу получить к нему доступ или использовать его?

Ответ 1

Надеемся, полезные ссылки:

EDIT: Math_BigInteger

Пример из http://phpseclib.sourceforge.net/documentation/math.html:

Реализует произвольную арифметическую библиотеку целых чисел. Использует gmp или bcmath, если он доступен, и внутреннюю реализацию, в противном случае.

<?php
    include('Math/BigInteger.php');

    $a = new Math_BigInteger(2);
    $b = new Math_BigInteger(3);

    $c = $a->add($b);

    echo $c->toString(); // outputs 5
?>

Ответ 2

Несмотря на то, что этот вопрос устарел, он появляется как первый результат, когда Googling для BigInteger PHP, поэтому для всех, кого это интересует, я открываю библиотеку под названием Brick\Math предлагает классы BigInteger, BigDecimal и BigRational.


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

use Brick\Math\BigInteger;
use Brick\Math\RoundingMode;

Дополнение:

echo BigInteger::of('9999999999999999999999999')->plus(1);
// 10000000000000000000000000

Вычитание:

echo BigInteger::of('10000000000000000000000000')->minus(1);
// 9999999999999999999999999

Умножение:

echo BigInteger::of('3333333333333333333333333')->multipliedBy(11);
// 36666666666666666666666663

Раздел:

echo BigInteger::of('1000000000000000000000')->dividedBy(3, RoundingMode::UP);
// 333333333333333333334

Возведение:

echo BigInteger::of(11)->power(50);
// 11739085287969531650666649599035831993898213898723001

Вы можете легко вызвать вызовы методов:

echo BigInteger::of(3)->multipliedBy(7)->minus(1)->dividedBy(10);

Установка

Просто установите с Composer и вы закончите:

composer require brick/math

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