Как работать с большими числами в PHP? - PullRequest
6 голосов
/ 22 марта 2010

Как работать с большими числами в PHP?

например

(6*27^0+17*27^1+11*27^2+18*27^3+25*27^4+4*27^5)^65537

Ответы [ 4 ]

6 голосов
/ 22 марта 2010

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

4 голосов
/ 18 июня 2012

GMP на самом деле быстрее, чем BCMath для больших участников, если он у вас установлен. Если у вас не установлены ни BCMath, ни GMP, вы можете использовать реализацию phpseclib pure-php biginteger .

Эта реализация использует GMP или BCmath, если они доступны, в указанном порядке, а в противном случае это собственная внутренняя реализация.

1 голос
/ 26 августа 2017

Учитывая заголовок вопроса, я предполагаю, что OP означал ^ как оператор мощности, а не оператор XOR PHP , хотя фактические цифры вызывают у меня сомнения.

Этого можно добиться с помощью библиотеки Brick \ Math ( отказ от ответственности: я создал ее ):

use Brick\Math\BigInteger;

// Not using BigInteger just yet as the numbers are small, although we could
$value =  6 * 27 ** 0
       + 17 * 27 ** 1
       + 11 * 27 ** 2
       + 18 * 27 ** 3
       + 25 * 27 ** 4
       +  4 * 27 ** 5;

echo BigInteger::of($value)->power(65537); // 529970661615774734826076722083948398443...

Я избавляю вас от остальных цифр 514566:)

1 голос
/ 03 января 2014

Есть много вариантов:

...