PHPのgmp_div_q()関数とは?GMP数値の除算方法をわかりやすく解説
gmp_div_q() 関数は、PHPのGMP拡張モジュールが提供する関数の一つで、大きな整数(GMP数値)同士の除算を行い、その商(割り算の結果)を求めるために使用されます。通常の整数型では扱えない桁数の巨大な数値を正確に計算したい場合に非常に便利です。
構文
gmp_div_q(n1, n2, rounding_mode)
パラメータ
n1 − 割られる側の最初のGMP数値です。PHP 5.6以降ではGMPオブジェクトを指定でき、それ以前のバージョンや一般的な用途では数値文字列も使用可能です。
n2 − 割る側となる2番目のGMP数値です。こちらもPHP 5.6以降ではGMPオブジェクト、または数値文字列を指定できます。
rounding_mode(省略可能)− 除算結果の丸め方法を指定します。以下の定数が利用できます。
- GMP_ROUND_ZERO:ゼロ方向へ丸める(切り捨て・デフォルト)
- GMP_ROUND_PLUSINF:正の無限大方向へ丸める(切り上げ)
- GMP_ROUND_MINUSINF:負の無限大方向へ丸める
戻り値
gmp_div_q() 関数は、n1 を n2 で割った際の商を返します。戻り値はそれ自体がGMP数値であるため、そのまま他のGMP関数に渡して further 計算に利用できます。
使用例
以下は、14 を 2 で割った商を求めるシンプルな例です。
<?php $n1 = "14"; $n2 = "2"; $res = gmp_div_q($n1, $n2); echo $res; ?>
出力
上記のコードを実行すると、次のような結果が出力されます。
7
このように、gmp_div_q() 関数を使えば、巨大な整数同士の除算も精度を損なうことなく簡単に行うことができます。剰余(余り)が必要な場合は gmp_div_r()、商と余りの両方が必要な場合は gmp_div_qr() 関数を併用すると便利です。
-
PHPのgmp_sub()関数とは?GMP数値の減算方法を解説
はじめにPHPのgmp_sub()関数は、2つのGMP数値の減算(差)を計算して返す関数です。GMPライブラリを使用することで、通常の整数型では扱えないような非常に大きな数値でも正確な演算が可能になります。構文gmp_sub(n1, n2)パラメータn1: 減算される側(被減数)となる最初のGMP数値。PHP 5.6以降ではGMPオブジェクトを指定できます。また、数値文字列として渡すことも可能です。n2: 引き算する側(減数)となる2番目のGMP数値。こちらもPHP 5.6以降であればGMPオブジェクトを指定でき、数値文字列にも対応しています。戻り値gmp_sub()関数は、n1からn2を引い
-
PHPのgmp_and()関数とは?ビット演算ANDの使い方を解説
PHPの gmp_and() 関数は、2つのGMP数値に対してビット単位のAND(論理積)演算を行い、その結果を返す関数です。GMPライブラリを使用することで、通常の整数型では扱えない大きな数値でも正確にビット演算が可能になります。構文gmp_and($n1, $n2)パラメータn1 − 1つ目のGMP数値。PHP 5.6以降ではGMPオブジェクトを指定できます。数値形式の文字列も渡すことが可能です。n2 − 2つ目のGMP数値。こちらも同様に、PHP 5.6以降ではGMPオブジェクト、または数値形式の文字列を指定できます。戻り値gmp_and() 関数は、ビット単位のAND演算の結果をGMP