PHPは10進数、2進数、8進数と16進数の変換関連関数の用法分析を実現する

5141 ワード

本明細書の例では、PHP実装10進数、2進数、8進数、および16進数変換関連関数の使用法について説明する.皆さんの参考にしてください.具体的には以下の通りです.
1.バイナリ:
1.1.バイナリ10進法:
関数:bindec(string $binary_string)@param $binary_stringパラメータは、変換するバイナリ文字列を表します.@returnは$binary_と返されます.stringパラメータが表すバイナリ数の10進数などの価値.
関数の説明:bindec()は、1つのバイナリ数をIntegerタイプに変換するか、またはサイズの必要に応じてfloatタイプに変換する.bindec()すべての$binary_string値は符号なし整数として解釈されます.これはbindec()関数がシンボルビットではなく最大有効ビットを数桁と見なしているためである.【すなわち、最上位ビット0または1はbindec()ではなく、値で1が1であり、0が0である】
注意:パラメータは文字列でなければなりません.他のデータ型を使用すると、予知できない結果になります.
例:

";
  echo bindec('00110') . "
"; echo bindec('1111') . "
";

以上のプログラム文は、18,6,15の順に出力されます.
1.2.バイナリ16進法
関数:bin2hex(string $str)@param$str変換するASCII文字の文字列.@returnは、変換文字列の16進数値を返します.
関数の説明:bin2hex()関数は、ASCII文字の文字列を16進数に変換します.文字列はpack()関数を使用して再変換できます.bin2hex()関数変換はバイト方式を用い,高4ビットワードが優先される.
例:
(1)bin2hex()「chengdu」を16進数に変換:

 
 

以上のプログラム文が出力されます:6368656 e 676475
(2)1つの文字列値をバイナリから16進数に変換してから、変換します.

";
  echo pack("H*", bin2hex($str)) . "
";

以上のプログラム文は順次出力:6368656 e 676475,chengdu
2.8進法:
2.1.8進数から10進数へ:
関数:octdec(string $octal_string)@param  $octal_stringパラメータは、変換する8進文字列を表します.@returnは$octal_を返しますstringパラメータが表す8進数の10進数等値.
関数の説明:octdec()はIntegerの大きな数字を処理できますが、この場合floatタイプが返されます.
例:

";
  echo octdec( decoct( 45 ) );

 
 

以上のプログラム文が出力されます:8,45
3.10進数:
3.1.10進数変換:
関数:decbin(int $number)@param$number変換する10進数、変換できる最大値は10進数の4294967295で、decbin結果は32個1の文字列です.@returnは、10進数変換後のバイナリ文字列を返します.
関数の説明:decbin()関数で変換できる最大10進数値は4294967295で、結果は32個の1の文字列です.
例:

";
  echo decbin ( 50 );

 
 

以上のプログラム文が出力されます:1010,110010
3.2.10進数から8進数へ:
関数:decoct(int $number)@param$number変換する10進数で、変換できる最大値は10進数の4294967295であり、decoct()の結果は「37777777777」である.@returnは、所与の$numberパラメータを含む8進表現の文字列を返します.
関数の説明:decoct()関数で変換できる最大10進数値は4294967295で、その結果は「37777777777」である.
例:

" ;
  echo decoct ( 50 );

 
 

以上のプログラム文は、12,62の順に出力されます.
3.3.10進数から16進数へ:
関数:dechex(int $number)@param$number変換する10進数.@returnは、所与の$numberパラメータを含む16進数表現の文字列を返します.
関数の説明:dechex()関数で変換できる10進数の最大値は、PHP_です.INT_MAX*2+/−1は、32ビットシステム上では10進数の4294967295であり、そのdechex()の結果はffffffである.
注意:PHPのIntegerタイプには符号がありますが、dechex()は符号なし整数しか処理できません.負の整数は符号なしで処理されます.
例:

" ;
  echo dechex ( 58 );

 
 

以上のプログラム文は、a,3 aの順に出力されます.
4.16進数:
4.1.16進数変換:
関数:hex2bin(string $data); 16進数文字列をバイナリ文字列に変換
@param$dataは16進数で表されるデータを使用します.@returnは、指定されたデータのバイナリ文字列または失敗した場合にFALSEを返します.
関数の説明:
入力された16進文字列が奇数長または無効な16進文字列の場合、E_が放出されます.WARNINGレベルのエラー.
例:

 
 

以上のプログラム文が出力されます:cheng du
4.2 16進数から10進数へ:
関数:hexdec(string $hex_string); 16進数文字列をバイナリ文字列に変換
@param  $hex_string変換する16進数の文字列.@returnは$hex_と返されます.stringパラメータが表す16進数等値の10進数.
関数の説明:hexdec()は、16進数以外の任意の文字を無視します.
PHP 4.1.0から、integerの大きな数値を処理できます.この場合、floatタイプが返されます.
例:

 
 

5.任意の進数変換のbase_convert()関数:
関数:base_convert(string $number, int $frombase, int $tobase)@param$number変換する数.@param$frombaseパラメータ$numberの進数.@param$tobase変換する進数.@returnは、$numberを$tobaseで進数で表す文字列を返します.
関数の説明:
$number自体の進数は$formbaseで指定されます.$formbaseと$tobaseは、2と36(2と36を含む)の間の整数値のみです.
注:内部の「double」または「float」タイプを使用するため、base_convert()の操作により、大きな数値で精度が失われる可能性があります.
例:

 
 

PS:ここでは、いくつかのコンピューティングと変換ツールをお勧めします.
オンライン任意進数変換ツール:http://tools.jb51.net/transcoding/hexconvert
科学計算機のオンライン使用_詳細計算機オンライン計算:http://tools.jb51.net/jisuanqi/jsqkexue
オンライン計算機_標準計算機:http://tools.jb51.net/jisuanqi/jsq
PHPに関する内容についてもっと兴味のある読者は、「PHP数学演算技巧総括」、「PHP配列(Array)操作技巧大全」、「PHPデータ構造とアルゴリズム教程」、「phpプログラム設計アルゴリズム総括」、「PHP演算と演算子用法総括」、「php文字列(string)用法総括」、「phpよくあるデータベース操作技巧総括」
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.