7

如何在 PHP 中处理大数字?

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

4 回答 4

8

您可以使用BCMath来处理大数字。

于 2010-03-22T09:00:31.127 回答
4

如果你安装了 GMP,它实际上比 BCMath 更快。如果您没有安装 BCMath 或 GMP,您可以使用phpseclib 的 pure-php biginteger implementation

如果 GMP 或 BCmath 可用,则该实现按顺序使用,否则它是自己的内部实现。

于 2012-06-18T04:04:37.427 回答
1

有很多选择:

于 2014-01-03T17:53:08.687 回答
1

鉴于问题标题,我假设 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 位我就不给你了 :)

于 2017-08-26T11:07:56.203 回答