如何在PHP中处理大数?

7

如何在PHP中处理大数字?

例如:

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

我认为这个数字可以适应普通的int类型。好吧,在你在末尾加上^65537之前是这样的。 - user254875486
1
请查看以下网址以了解如何在PHP中处理大数:https://dev59.com/EXVC5IYBdhLWcg3wsTZi - Anders Lindahl
4个回答

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

4
如果您安装了GMP,则对于大整数,GMP实际上比BCMath更快。如果您没有安装BCMath或GMP,则可以使用phpseclib的纯PHP大整数实现。该实现按照可用性顺序使用GMP或BCmath,否则使用其自己的内部实现。

1

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位数字了 :)


1
我指的是幂运算符。 - Pentium10

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接