base_convert()関数は、異なるデジタル桁間を変換するために使用されます。 1つの数字(バイナリ、小数など)から別の数字に変換できます。この関数の構文は次のとおりです。
<span><span><span class="hljs-title function_ invoke__">base_convert</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$number</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$frombase</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$tobase</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>
</span></span>
$番号:変換する番号、文字列として渡されます。
$ frombase :現在の数値は2〜36に分割されます。
$ TOBASE :ターゲットバイナリ、範囲も2〜36です。
変換された数値を文字列として返します。入力が無効であるか、パラメーターが正しくない場合、 falseが返されます。
base_convert()関数は、2〜36のバイナリ範囲をサポートします。これは、次の部門間で変換できることを意味します。
バイナリ(ベース2) :コンピューターにデータを保存するためによく使用される0と1のみが含まれています。
Octal(ベース8) :0から7の数値で構成されています。
小数(ベース10) :0から9までの数値を含む毎日使用する数値システム。
Hexadecimal(ベース16) :コンピューター内のデータを表すために使用される0〜9およびAからFが含まれており、メモリアドレスやその他の側面で広く使用されています。
より高い口蓋(ベース17からベース36) :一般的な小数、バイナリなどを超えていますが、一部の特別なアプリケーションでは、まだ一意の価値があります。
たとえば、数値(16進数以上)の文字表現は、a = 10、b = 11、...、z = 35でaからzで表されます。
バイナリ番号1011があり、それを小数に変換したいとします。
<span><span><span class="hljs-variable">$binary</span></span><span> = </span><span><span class="hljs-string">"1011"</span></span><span>;
</span><span><span class="hljs-variable">$decimal</span></span><span> = </span><span><span class="hljs-title function_ invoke__">base_convert</span></span><span>(</span><span><span class="hljs-variable">$binary</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$decimal</span></span><span>; </span><span><span class="hljs-comment">// 出力:11</span></span><span>
</span></span>
この例では、バイナリ番号1011は小数11に変換されます。
小数点以下を16進変換する必要がある状況に遭遇する場合があります。たとえば、数字255を16進数に変換します。
<span><span><span class="hljs-variable">$decimal</span></span><span> = </span><span><span class="hljs-string">"255"</span></span><span>;
</span><span><span class="hljs-variable">$hexadecimal</span></span><span> = </span><span><span class="hljs-title function_ invoke__">base_convert</span></span><span>(</span><span><span class="hljs-variable">$decimal</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">16</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$hexadecimal</span></span><span>; </span><span><span class="hljs-comment">// 出力:FF</span></span><span>
</span></span>
ここでは、小数255は16進数FFに変換されます。
16進数をOctalに変換できます。たとえば、 1f (16進数)をOctalに変換します。
<span><span><span class="hljs-variable">$hex</span></span><span> = </span><span><span class="hljs-string">"1F"</span></span><span>;
</span><span><span class="hljs-variable">$octal</span></span><span> = </span><span><span class="hljs-title function_ invoke__">base_convert</span></span><span>(</span><span><span class="hljs-variable">$hex</span></span><span>, </span><span><span class="hljs-number">16</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$octal</span></span><span>; </span><span><span class="hljs-comment">// 出力:37</span></span><span>
</span></span>
16進数1FはOctal 37に変換されます。
PHPのbase_convert()を使用すると、16進数よりも大きいバイナリを使用することもできます。たとえば、10進数100をベース35に変換します。
<span><span><span class="hljs-variable">$decimal</span></span><span> = </span><span><span class="hljs-string">"100"</span></span><span>;
</span><span><span class="hljs-variable">$base35</span></span><span> = </span><span><span class="hljs-title function_ invoke__">base_convert</span></span><span>(</span><span><span class="hljs-variable">$decimal</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">35</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$base35</span></span><span>; </span><span><span class="hljs-comment">// 出力:2S</span></span><span>
</span></span>
ベース35では、数値100は2秒に対応しています。
範囲制限: Base_Convert()関数のサポートされているバイナリ範囲は2〜36です。この範囲を超えると、エラーが発生します。
パラメータータイプ: $ numberパラメーターは文字列タイプです。入力が数字であっても、文字列型に変換して渡す必要があります。
ケース:バイナリ変換では、PHPは文字に敏感ではありません。たとえば、 base_convert( "10"、10、16)およびbase_convert( "10"、10、16)の結果は同じです。返された結果は大文字で表示されますが、入力が小文字の場合、自動的に変換されます。