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

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

такие как

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

person Pentium10    schedule 22.03.2010    source источник
comment
Я думаю, что это число поместится в обычном int. Хорошо, это было до того, как вы поставили ^65537 в конце.   -  person rael_kid    schedule 22.03.2010


Ответы (4)


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

person Sarfraz    schedule 22.03.2010

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

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

person neubert    schedule 18.06.2012

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

person castarco    schedule 03.01.2014

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

Этого можно добиться с помощью библиотеки 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 цифр :)

person BenMorel    schedule 26.08.2017
comment
Я имел в виду силового оператора. - person Pentium10; 27.08.2017