PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

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などの任意精度演算ライブラリの利用を検討してください。

  1. PHPのgmp_powm()関数とは?冪乗の剰余を高速に計算する方法

    PHPのGMP拡張モジュールには、大きな整数を扱うためのさまざまな数学関数が用意されています。その中でもgmp_powm()は、「べき乗の剰余」を効率的に計算できる便利な関数です。この記事では、gmp_powm()関数の基本的な使い方から、パラメータの意味、実際のコード例までわかりやすく解説します。 gmp_powm()関数とは gmp_powm()関数は、指定した基数(base)を指数(pow)で累乗した結果を、法(mod)で割った余りをGMP数値として返します。 つまり、次のような計算を行います。 (base ^ pow) mod mod 巨大な数をそのまま累乗すると桁が爆発的に増えてし

  2. 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より大きい場合