La fonction Base_Convert () est utilisée pour convertir entre différents chiffres numériques. Il peut convertir un nombre d'un chiffre (comme binaire, décimal, etc.) à un autre. La syntaxe de cette fonction est la suivante:
<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>
Numéro de $ : le numéro à convertir, passé sous forme de chaîne.
$ NUBASE : Le numéro actuel est divisé en 2 à 36.
$ TOBASE : Target Binary, la plage est également de 2 à 36.
Renvoie le numéro converti en tant que chaîne. Si l'entrée n'est pas valide ou si le paramètre est incorrect, false est renvoyé.
La fonction Base_Convert () prend en charge une plage binaire de 2 à 36. Cela signifie que vous pouvez convertir entre les divisions suivantes:
Binaire (base 2) : ne contient que 0 et 1 , qui est souvent utilisé pour stocker des données dans les ordinateurs.
Octal (base 8) : se compose de nombres de 0 à 7.
Décimal (base 10) : le système numérique que nous utilisons tous les jours, contenant des nombres de 0 à 9.
HexaDecimal (base 16) : contient 0 à 9 et A à F, utilisé pour représenter les données dans un ordinateur, et est largement utilisé dans les adresses mémoire et autres aspects.
Palance supérieure (base 17 à la base 36) : dépasse la décimale commune, le binaire, etc., mais dans certaines applications spéciales, il a toujours sa valeur unique.
Par exemple, la représentation de lettre d'un nombre (en hexadécimal et ci-dessus) est représentée par A à Z , où a = 10, b = 11, ..., z = 35.
Supposons que vous ayez un numéro binaire 1011 et que vous souhaitez le convertir en décimal:
<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">// Sortir:11</span></span><span>
</span></span>
Dans cet exemple, le numéro binaire 1011 est converti au numéro décimal 11 .
Vous pouvez rencontrer des situations où vous devez convertir les nombres décimaux en hexadécimal. Par exemple, convertissez le numéro 255 en hexadécimal:
<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">// Sortir:FF</span></span><span>
</span></span>
Ici, la décimale 255 est convertie en FF hexadécimal.
Vous pouvez convertir les numéros hexadécimaux en octal. Par exemple, convertir 1f (hexadécimal) en 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">// Sortir:37</span></span><span>
</span></span>
Hexadecimal 1F est converti en octal 37 .
PHP's Base_Convert () vous permet également d'utiliser un binaire supérieur à l'hexadécimal. Par exemple, convertissez le numéro décimal 100 en base 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">// Sortir:2S</span></span><span>
</span></span>
Dans la base 35, le nombre 100 correspond à 2s .
Limite de plage : la plage binaire prise en charge de la fonction base_convert () est de 2 à 36. La dépassement de cette plage entraînera des erreurs.
Type de paramètre : le paramètre Nombre $ est un type de chaîne. Même si l'entrée est un nombre, elle doit être convertie en type de chaîne et transmise.
Cas : Dans la conversion binaire, le PHP n'est pas sensible aux lettres. Par exemple, les résultats de Base_Convert ("10", 10, 16) et Base_Convert ("10", 10, 16) sont les mêmes. Le résultat retourné sera affiché dans des lettres majuscules, mais si l'entrée est des lettres minuscules, elle sera automatiquement convertie.