hexdec

関数の概要

PHPの hexdec 関数は、16進数表記の文字列を10進数の整数に変換するための関数です。16進数は0〜9の数字とA〜F(またはa〜f)のアルファベットで表される数値で、主に色コードやメモリアドレスなどで使われます。hexdecを使うことで、16進数の文字列を簡単に数値として扱うことができます。

パラメータの説明

  • string $hex_string: 変換したい16進数の文字列を指定します。文字列内に含まれる先頭の「0x」や「0X」は無視されます。大文字・小文字は区別されません。

戻り値

引数で与えた16進数文字列を10進数に変換した整数値を返します。変換可能な文字列でない場合は 0 を返します。

使用例

基本的な使い方

<?php
echo hexdec("1A");    // 出力: 26
echo hexdec("FF");    // 出力: 255
echo hexdec("0x10");  // 出力: 16 ("0x"は無視される)
?>

16進数の「1A」は10進数の26に変換されます。同様に「FF」は255、「0x10」は16進数の10、つまり10進数の16になります。

小文字の16進数文字列

<?php
$value = hexdec("abc123");
echo $value;  // 出力: 11256099
?>

16進数は大文字・小文字を区別しないため、小文字の「abc123」も正しく変換されます。

無効な文字を含む場合

<?php
echo hexdec("1G");  // 出力: 1
echo hexdec("Z123"); // 出力: 0
?>

16進数として認識できる部分までを変換し、無効な部分で止まります。例えば「1G」は「1」まで変換され「G」で停止するため出力は1に、「Z123」のように最初の文字が無効な場合は0が返ります。

関連する関数

  • decbin: 10進数を2進数表記の文字列に変換する
  • dechex: 10進数を16進数表記の文字列に変換する
  • bindec: 2進数表記の文字列を10進数に変換する
  • octdec: 8進数表記の文字列を10進数に変換する

まとめ

hexdecはPHPで16進数の文字列を手軽に10進数に変換できる便利な関数です。色コードの変換や16進数表記の数値処理で非常に役立ちます。入力が16進数であれば大文字小文字を気にせず使え、数値変換で困ったときにまず試したい関数の一つです。