代码之家  ›  专栏  ›  技术社区  ›  Pentium10

如何在php中处理大数字?

  •  6
  • Pentium10  · 技术社区  · 15 年前

    如何在php中处理大数字?

    (6*27^0+17*27^1+11*27^2+18*27^3+25*27^4+4*27^5)^65537
    
    4 回复  |  直到 8 年前
        1
  •  6
  •   Sarfraz    15 年前

    你可以去 BCMath 与大数字打交道。

        2
  •  4
  •   BenMorel Manish Pradhan    11 年前

    如果你安装了gmp,它实际上比bcmath更快。如果您没有安装bcmath或gmp,则可以使用 phpseclib's pure-php biginteger implementation .

    该实现使用gmp或bcmath(如果它们是可用的,则按顺序排列),否则它是自己的内部实现。

        3
  •  1
  •   castarco    11 年前

    有很多选择:

        4
  •  1
  •   BenMorel Manish Pradhan    8 年前

    考虑到问题的标题,我假设操作意味着 ^ 作为一个power操作符而不是php的 XOR operator ,尽管实际数字让我怀疑。

    这可以通过使用 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位留给你:)

    推荐文章