如何在 PHP 中处理大数字?
如
(6*27^0+17*27^1+11*27^2+18*27^3+25*27^4+4*27^5)^65537
您可以使用BCMath来处理大数字。
如果你安装了 GMP,它实际上比 BCMath 更快。如果您没有安装 BCMath 或 GMP,您可以使用phpseclib 的 pure-php biginteger implementation。
如果 GMP 或 BCmath 可用,则该实现按顺序使用,否则它是自己的内部实现。
有很多选择:
鉴于问题标题,我假设 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 位我就不给你了 :)