base_convert

関数の概要

base_convertは、PHPで数値の進数を変換するための関数です。たとえば、10進数を2進数や16進数に変換したり、逆に他の進数から10進数に変換したりするときに使います。ウェブ開発やデータ処理の現場で、異なる進数表現を扱う際に非常に便利な関数です。

パラメータの説明

  • number (string): 変換したい数値を表す文字列です。PHPでは大きな数値も文字列として扱うことが多いため、数値としての制限が緩やかです。
  • frombase (int): 元の数値が何進数で表されているかを指定します。2から36までの整数を指定可能です。
  • tobase (int): 変換後の進数を指定します。同じく2から36までの整数を指定可能です。

戻り値

指定した元の進数から、対象の進数に変換した結果の文字列が返されます。数字やアルファベット(a~z)を用いて表記されます。もしnumberが無効な形式であれば、返り値は不定になります。

使用例

基本的な使い方

<?php
echo base_convert('10', 10, 2); // 10進数の"10"を2進数に変換
?>

この例では、10進数の”10″を2進数に変換して1010が出力されます。

16進数から10進数への変換

<?php
echo base_convert('1a', 16, 10); // 16進数の"1a"を10進数に変換
?>

16進数の”1a”は10進数の26になるため、この値が表示されます。

2進数から36進数への変換

<?php
echo base_convert('1101010', 2, 36); // 2進数の"1101010"を36進数に変換
?>

2進数の”1101010″は10進数の106に相当し、36進数では2aとなります。

関連する関数

  • decbin(): 10進数を2進数文字列に変換する
  • dechex(): 10進数を16進数文字列に変換する
  • decoct(): 10進数を8進数文字列に変換する
  • bindec(): 2進数文字列を10進数に変換する
  • hexdec(): 16進数文字列を10進数に変換する

まとめ

base_convertは、異なる進数間で数値を変換したい場合に非常に便利なPHP関数です。2から36進数まで対応し、文字列で数値を自由に扱えるため、大きな数値も問題なく変換できます。基本から応用まで幅広く使えるので、ぜひ覚えておくと実務で役立ちます。