PHP関数編:10進数、2進数、8進数、16進数を相互に変換する関数の説明を詳しく解説します。
主に各進数変換の方法を理解し、実際の開発に応用できるようにします。
10進数(decimal system)変換関数の説明
10進数から2進数へ変換する decbin() 関数
次の例を見てください。
echo decbin(12); // 输出 1100
echo decbin(26); // 输出 11010
decbin(PHP 3, PHP 4, PHP 5)
decbin:10進数を2進数に変換します。
説明:
string decbin(int $number)
指定された number パラメータの2進表現を含む文字列を返します。変換できる最大値は10進数の 4294967295 で、その結果は 32 個の 1 からなる文字列です。
10進数から8進数へ変換する decoct() 関数
echo decoct(15); // 输出 17
echo decoct(264); // 输出 410
decoct(PHP 3, PHP 4, PHP 5)
decoct:10進数を8進数に変換します。
説明:
string decoct(int $number)
指定された number パラメータの8進表現を含む文字列を返します。変換できる最大値は10進数の 4294967295 で、その結果は 37777777777 です。
10進数から16進数へ変換する dechex() 関数
echo dechex(10); // 输出 a
echo dechex(47); // 输出 2f
dechex(PHP 3, PHP 4, PHP 5)
dechex:10進数を16進数に変換します。
説明:
string dechex(int $number)
指定された number パラメータの16進表現を含む文字列を返します。変換できる最大値は10進数の 4294967295 で、その結果は ffffffff です。
2進数(binary system)変換関数の説明
2進数から10進数へ変換する bindec() 関数
echo bindec('110011'); // 输出 51
echo bindec('000110011'); // 输出 51
echo bindec('111'); // 输出 7
bindec(PHP 3, PHP 4, PHP 5)
bindec:2進数を10進数に変換します。
説明:
number bindec(string $binary_string)
binary_string パラメータが表す2進数の10進数としての等価値を返します。
bindec() は2進数を integer に変換します。変換できる最大値は 31 ビットすべてが 1 の数、つまり10進数の 2147483647 です。PHP 4.1.0 以降、この関数は大きな数値も処理でき、その場合は float 型を返します。
2進数から16進数へ変換する bin2hex() 関数
$binary = '11111001';
$hex = dechex(bindec($binary));
echo $hex; // 输出 f9
bin2hex(PHP 3 >= 3.0.9, PHP 4, PHP 5)
bin2hex:バイナリデータを16進表現に変換します。
説明:
string bin2hex(string $str)
パラメータ str の16進表現である ASCII 文字列を返します。変換はバイト単位で行われ、上位4ビットが先になります。
8進数(octal system)変換関数の説明
8進数から10進数へ変換する octdec() 関数
echo octdec('77'); // 输出 63
echo octdec(decoct(45)); // 输出 45
octdec(PHP 3, PHP 4, PHP 5)
octdec:8進数を10進数に変換します。
説明:
number octdec(string $octal_string)
octal_string パラメータが表す8進数の10進数としての等価値を返します。変換できる最大値は 17777777777、つまり10進数の 2147483647 です。PHP 4.1.0 以降、この関数は大きな数値も処理でき、その場合は float 型を返します。
16進数(hexadecimal)変換関数の説明
16進数から10進数へ変換する hexdec() 関数
var_dump(hexdec('See'));
var_dump(hexdec('ee'));
// both print "int(238)"
var_dump(hexdec('that')); // print "int(10)"
var_dump(hexdec('a0')); // print "int(160)"
hexdec(PHP 3, PHP 4, PHP 5)
hexdec:16進数を10進数に変換します。
説明:
number hexdec(string $hex_string)
hex_string パラメータが表す16進数と等価な10進数を返します。hexdec() は16進文字列を10進数に変換します。変換できる最大値は 7fffffff、つまり10進数の 2147483647 です。PHP 4.1.0 以降、この関数は大きな数値も処理でき、その場合は float 型を返します。
hexdec() は、遭遇したすべての非16進文字を 0 に置き換えます。そのため、左側のゼロはすべて無視されますが、右側のゼロは値に含まれます。
任意の基数変換を行う base_convert() 関数
$hexadecimal = 'A37334';
echo base_convert($hexadecimal, 16, 2); // 输出 101000110111001100110100
base_convert(PHP 3 >= 3.0.6, PHP 4, PHP 5)
base_convert:任意の基数間で数値を変換します。
説明:
string base_convert(string $number, int $frombase, int $tobase)
number を tobase 進数で表した文字列を返します。number 自体の基数は frombase で指定します。frombase と tobase はどちらも 2 から 36 まで(2 と 36 を含む)の範囲でなければなりません。10進数を超える数値は a-z の文字で表され、たとえば a は 10、b は 11、z は 35 を表します。
