什么是 GMP?
GMP 代表 GNU 多精度算术库 (GMP)。
PHP 库 GMP ,允许对有符号整数、有理数和浮点数进行数学运算。GMP 具有丰富的函数集合,有助于对大数执行复杂的数学运算。据说 GMP 在计算非常大的数字的最终结果方面速度更快。
GMP 在密码学、互联网安全等应用程序以及处理算术运算的软件中非常有用。
GMP 安装
GMP 模块默认添加到 PHP 中。您可以通过删除 (;);extension=gmp 添加到 php.ini 的扩展开头。之后,重新启动 apache 并确认更改是否反映出来。将下面的代码另存为 .php 并在浏览器中执行相同的代码。
<?php
phpinfo();
?>
您应该会在浏览器中看到 GMP 已启用,如下所示 -

GMP 函数
下表列出 GMP 相关的所有函数。
函数 | 描述 | 版本 |
---|---|---|
gmp_abs() | 返回绝对值 | 5.0.0 |
gmp_add() | 返回两个数字的和 | 5.0.0 |
gmp_and() | 返回两个数字的按位 AND 比较 | 5.0.0 |
gmp_binomial() | 计算二项式系数 | 7.3.0 |
gmp_clrbit() | 清除位 | 5.0.0 |
gmp_cmp() | 比较两个 GMP 编号 | 5.0.0 |
gmp_com() | 计算 1 的补码 | 5.0.0 |
gmp_div_q() | 将给定的数字相除 | 5.0.0 |
gmp_div_qr() | 将给定的数字除以并返回商和余数 | 5.0.0 |
gmp_div_r() | 将给定的数字相除并返回余数 | 5.0.0 |
gmp_div() | 将给定的数字相除 | 5.0.0 |
gmp_divexact() | 给出给定数字的精确除法 | 5.0.0 |
gmp_export() | 导出二进制字符串 | 5.6.1 |
gmp_fact() | 计算给定数的阶乘 | 5.0.0 |
gmp_gcd() | 计算给定数字的 GCD | 5.0.0 |
gmp_gcdext() | 计算给定数字的 GCD 和乘数 | 5.0.0 |
gmp_hamdist() | 计算两个给定数字之间的汉明距离 | 5.0.0 |
gmp_import() | 从二进制字符串导入 | 5.6.1 |
gmp_init() | 创建 GMP 编号 | 5.0.0 |
gmp_intval() | 将 GMP 编号转换为整数 | 5.0.0 |
gmp_invert() | 返回给定 GMP 编号的模逆函数 | 5.0.0 |
gmp_jacobi() | 计算 jacobi 符号 | 5.0.0 |
gmp_kronecker() | 计算 Kronecker 符号 | 7.3.0 |
gmp_lcm() | 计算给定 GMP 编号的 LCM | 7.3.0 |
gmp_legendre() | 计算勒让德符号 | 5.0.0 |
gmp_mod() | 返回模数 | 5.0.0 |
gmp_mul() | 乘以 GMP 编号 | 5.0.0 |
gmp_neg() | 返回给定数字的负值 | 5.0.0 |
gmp_nextprime() | 帮助找到下一个素数 | 5.2.0 |
gmp_or() | 计算给定数字的按位 OR | 5.0.0 |
gmp_perfect_power() | 检查 GMP 值是否为完美功效 | 7.3.0 |
gmp_perfect_square() | 检查 GMP 值是否为正方形 | 5.0.0 |
gmp_popcount() | 计算人口计数 | 5.0.0 |
gmp_pow() | 返回给定数字 raise 到 次方 的结果 | 5.0.0 |
gmp_powm() | 返回新数字,其中给定数字与 modulo 一起提高到 ver | 5.0.0 |
gmp_prob_prime() | 检查 GMP 号是否为质数 | 5.0.0 |
gmp_random_bits() | 返回随机数 | 5.6.3 |
gmp_random_range() | 返回给定的最小数字和最大数字之间的随机数 | 5.6.3 |
gmp_random_seed() | 设置种子以生成 randon 数 | 7.0.0 |
gmp_random() | 返回随机数。 | 5.0.0 |
gmp_root() | 返回根的整数值 | 5.6.0 |
gmp_rootrem() | 返回整数值和第 n 个根的余数 | 5.6.0 |
gmp_scan0() | 扫描给定数字中的 0 | 5.0.0 |
gmp_scan1() | 扫描给定数字中的 1 | 5.0.0 |
gmp_setbit() | 设置给定 GMP 编号的位索引 | 5.0.0 |
gmp_sign() | 返回给定数字的符号 | 5.0.0 |
gmp_sqrt() | 计算平方根 | 5.0.0 |
gmp_sqrtrem() | 计算带余数的平方根 | 5.0.0 |
gmp_strval() | 将给定的 GMP 编号转换为字符串 | 5.0.0 |
gmp_sub() | 返回两个给定数字之间的差 | 5.0.0 |
gmp_testbit() | 测试是否为给定索引设置了位 | 5.3.0 |
gmp_xor() | 计算给定数字的按位 XOR | 5.0.0 |