📅  最后修改于: 2023-12-03 15:18:20.076000             🧑  作者: Mango
GMP是GNU多精度算术库的简称。它是一个高性能的库,用于任意长度的整数运算。在PHP中,可以使用GMP函数来完成所有的任意长度整数运算。这篇文章将会介绍GMP库中所有的PHP函数,包括输入、输出、算术运算、比较、位运算、随机数生成等。
将一个字符串或整数转换为一个GMP数。如果没有提供进制,则默认为10进制。
$gmp_num = gmp_init("1234567890123456789");
将一个GMP数转换为字符串。如果没有提供进制,则默认为10进制。
$str_num = gmp_strval($gmp_num);
将一个GMP数转换为整数。如果超过了PHP的整数范围,则返回它的字符串表示。
$int_num = gmp_intval($gmp_num);
将两个GMP数相加。
$sum = gmp_add($gmp_num1, $gmp_num2);
用第二个GMP数减去第一个GMP数。
$difference = gmp_sub($gmp_num1, $gmp_num2);
将两个GMP数相乘。
$product = gmp_mul($gmp_num1, $gmp_num2);
将第一个GMP数除以第二个GMP数,并返回商。注意,它只返回整除的商。
$quotient = gmp_div_q($gmp_num1, $gmp_num2);
将第一个GMP数除以第二个GMP数,并返回余数。
$remainder = gmp_div_r($gmp_num1, $gmp_num2);
将第一个GMP数除以第二个GMP数,并同时返回商和余数。
list($quotient, $remainder) = gmp_div_qr($gmp_num1, $gmp_num2);
将一个GMP数的幂返回。
$power = gmp_pow($gmp_num, $exponent);
将一个GMP数的平方根返回。如果它不是一个完全平方数,则向下取整到最接近的整数。
$sqrt_num = gmp_sqrt($gmp_num);
返回一个GMP数的相反数。
$opp_num = gmp_neg($gmp_num);
返回一个GMP数的绝对值。
$abs_num = gmp_abs($gmp_num);
比较两个GMP数。如果第一个数比第二个数小,返回-1;如果它们相等,返回0;如果第一个数比第二个数大,返回1。
$cmp_result = gmp_cmp($gmp_num1, $gmp_num2);
返回一个GMP数的符号。如果它是一个负数,返回-1;如果它是一个正数,返回1;如果它是0,返回0。
$sign_num = gmp_sign($gmp_num);
计算两个GMP数的按位与。
$and_result = gmp_and($gmp_num1, $gmp_num2);
计算两个GMP数的按位或。
$or_result = gmp_or($gmp_num1, $gmp_num2);
计算两个GMP数的按位异或。
$xor_result = gmp_xor($gmp_num1, $gmp_num2);
计算一个GMP数的按位反。
$com_result = gmp_com($gmp_num);
将一个GMP数的指定位设置为1。
$bit_num = gmp_setbit($gmp_num, $bit_index);
将一个GMP数的指定位设置为0。
$bit_num = gmp_clrbit($gmp_num, $bit_index);
返回一个GMP数的从右往左第一个0的位数,从0开始计数。如果它是1,则返回这个数的二进制位数。
$zero_bit = gmp_scan0($gmp_num);
返回一个GMP数的从右往左第一个1的位数,从0开始计数。如果它是0,则返回这个数的二进制位数。
$one_bit = gmp_scan1($gmp_num);
生成一个随机的GMP数。
$rand_num = gmp_rand();
设置一个随机生成器的种子。
gmp_random_seed($seed);