PHPのbase_convert()関数とは?基数変換の基本と使い方をわかりやすく解説
PHPのbase_convert()関数は、数値をある基数(進数)から別の基数へ変換するための関数です。たとえば、8進数を10進数に、16進数を8進数に変換するといった処理が簡単に行えます。
指定できる基数は2〜36の範囲内です。基数が10より大きい数値の場合、10以上の桁はアルファベットa〜zで表現されます。対応関係は以下のとおりです。
- a = 10
- d = 13
- z = 35
構文
base_convert(num, original_base, to_base)
パラメータ
num − 変換対象となる数値。
original_base − 変換元の基数。2〜36の範囲で指定します。基数が10より大きい場合、a=10、d=13、z=35のように英字で桁を表します。
to_base − 変換先の基数。こちらも2〜36の範囲で指定し、10を超える基数では同様に英字が使用されます。
戻り値
base_convert()関数は、指定した基数に変換した後の数値を文字列として返します。
使用例1:8進数から10進数へ変換
<?php
$res = "0040";
echo base_convert($res, 8, 10);
?>
出力結果
32
8進数「0040」は、10進数では「32」になります。
使用例2:16進数から8進数へ変換
<?php
$res = "D365";
echo base_convert($res, 16, 8);
?>
出力結果
151545
16進数「D365」は、8進数では「151545」に変換されます。
使用例3:2進数から16進数へ変換
<?php
$res = "101101";
echo base_convert($res, 2, 16);
?>
出力結果
2d
2進数「101101」は、16進数では「2d」と表されます。
注意点:大きな数値を扱う場合
base_convert()関数は内部的に倍精度浮動小数点数を使用するため、非常に大きな数値を変換すると精度が失われる可能性があります。巨大な数値を正確に扱いたい場合は、GMP拡張モジュールやBC Mathなどの任意精度演算ライブラリの利用を検討してください。
-
PHPのgmp_powm()関数とは?冪乗の剰余を高速に計算する方法
PHPのGMP拡張モジュールには、大きな整数を扱うためのさまざまな数学関数が用意されています。その中でもgmp_powm()は、「べき乗の剰余」を効率的に計算できる便利な関数です。この記事では、gmp_powm()関数の基本的な使い方から、パラメータの意味、実際のコード例までわかりやすく解説します。 gmp_powm()関数とは gmp_powm()関数は、指定した基数(base)を指数(pow)で累乗した結果を、法(mod)で割った余りをGMP数値として返します。 つまり、次のような計算を行います。 (base ^ pow) mod mod 巨大な数をそのまま累乗すると桁が爆発的に増えてし
-
PHPのbase_convert()関数とは?基数変換の基本と使い方をわかりやすく解説
PHPのbase_convert()関数は、数値をある基数(進数)から別の基数へ変換するための関数です。たとえば、8進数を10進数に、16進数を8進数に変換するといった処理が簡単に行えます。指定できる基数は2〜36の範囲内です。基数が10より大きい数値の場合、10以上の桁はアルファベットa〜zで表現されます。対応関係は以下のとおりです。a = 10d = 13z = 35構文base_convert(num, original_base, to_base)パラメータnum − 変換対象となる数値。original_base − 変換元の基数。2〜36の範囲で指定します。基数が10より大きい場合