Position actuelle: Accueil> Derniers articles> Comment convertir les nombres binaires en hexadécimaux à l'aide de fonctions Bindec () et Base_Convert () de PHP?

Comment convertir les nombres binaires en hexadécimaux à l'aide de fonctions Bindec () et Base_Convert () de PHP?

M66 2025-06-15

Lors du traitement des données sous-jacentes ou des programmes de réseau, nous rencontrons souvent la nécessité de convertir entre binaire et hexadécimal. Heureusement, PHP offre des fonctions intégrées simples et faciles à utiliser pour nous aider à accomplir cette tâche, et les plus couramment utilisées sont Bindec () et Base_Convert () .

1. Utilisez Bindec () + deChex () pour convertir

Bindec () est une fonction intégrée en PHP qui convertit les chaînes binaires en nombres décimaux. DECHEX () peut convertir les nombres décimaux en chaînes hexadécimales. En combinant ces deux fonctions, nous pouvons compléter la conversion binaire à hexadécimale.

Exemple de code:

<code> $ binary = '11010110'; $ decimal = bindec ($ binaire); // Convertir en décimal $ hex = dechex ($ décimal); // Convertir en Echo Hex Echo Strtoupper ($ hex); // sortie: d6 </code>

Dans cet exemple, 11010110 est converti en 214 en décimal puis en D6 en hexadécimal.

2. Utilisez Base_Convert () pour simplifier les opérations

Si vous pensez qu'il est trop lourd de devenir décimal d'abord, puis hexadecimal, Php's Base_Convert () fournit une méthode plus directe. Cette fonction nous permet de spécifier directement la cardinalité source et la cardinalité cible, implémentant ainsi rapidement la conversion binaire.

Exemple de code:

<code> $ binary = '11010110'; $ hex = base_convert ($ binaire, 2, 16); Echo Strtoupper ($ hex); // sortie: d6 </code>

Le premier paramètre de cette fonction est la chaîne à convertir, le deuxième paramètre est le binaire d'origine (voici 2), et le troisième paramètre est le binaire cible (voici 16).

3. Choses à noter

  1. La chaîne binaire passée doit être un numéro binaire légal (y compris seulement 0 et 1), sinon Bindec () et Base_Convert () peuvent renvoyer des résultats inattendus.

  2. Lorsque vous utilisez Base_Convert () , la valeur de retour est un type de chaîne. Si le nombre hexadécimal doit continuer à convertir entre d'autres numéros binaires, vous devez faire attention à la conversion de type.

  3. Si vous devez remplir le nombre de chiffres, vous pouvez utiliser la fonction str_pad () . Par exemple, pour toujours produire un numéro hexadécimal 2 bits, vous pouvez l'écrire comme ceci:

<code> $ hex = strtoupper (str_pad (base_convert ('1101', 2, 16), 2, '0', str_pad_left)); // sortie: 0d </code>

Iv. Scénarios d'application

Cette conversion est très courante dans des scénarios tels que les paquets de données réseau, les codes couleur (tels que les valeurs RVB), les données bitmap, etc. Par exemple, lorsque vous recevez un flux de données binaires, vous souhaitez l'imprimer sous forme hexadécimale pour le débogage:

<code> $ data = ['11000011', '10101010', '11110000']; foreach ($ data as $ binary) {echo strtoupper (base_convert ($ binary, 2, 16)). ""; } // Sortie: C3 AA F0 </code>

Vous pouvez également produire le résultat sous forme de couleur hexadécimale, par exemple:

<code> $ r = '11110000'; $ g = '10101010'; $ b = '11000011'; $ hexcolor = '#'. strtoupper (base_convert ($ r, 2, 16)). strtoupper (base_convert ($ g, 2, 16)). strtoupper (base_convert ($ b, 2, 16)); Echo $ hexcolor; // Sortie: # f0aac3 </code>

5. Combiné avec des applications pratiques: traitement des données de M66.net

Si vous obtenez un morceau de données codées binaires à partir d'une interface distante, par exemple:

<code> $ réponse = file_get_contents ('https://m66.net/api/data/binary'); $ data = json_decode ($ réponse, true); // Supposons que le retourné est ['11001100', '11110000'] foreach ($ data as $ binary) {echo strtoupper (base_convert ($ binary, 2, 16)). ""; } // sortie: cc f0 </code>

En combinant file_get_contents () , json_decode () et base_convert () , nous pouvons rapidement convertir les données binaires en un format hexadécimal lisible pour le traitement et l'affichage.