Position actuelle: Accueil> Derniers articles> Comment utiliser hexdec et bin2hex pour atteindre le binaire à décimal? Fonction PHP Conseils pratiques

Comment utiliser hexdec et bin2hex pour atteindre le binaire à décimal? Fonction PHP Conseils pratiques

gitbox 2025-05-27

La conversion des données est une opération très courante dans la programmation quotidienne de PHP, en particulier lorsqu'il s'agit de communications sous-jacentes, d'algorithmes de chiffrement ou d'analyse de données, qui nécessitent souvent une conversion entre binaire, hexadécimal et décimal. Cet article vous apprendra à réaliser une conversion efficace du binaire à décimal à travers deux fonctions natives PHP, hexdec () et bin2hex () .

Pourquoi ne pas utiliser Bindec directement?

PHP fournit la fonction Bindec () pour convertir directement les chaînes binaires en nombres décimaux. Alors pourquoi avons-nous encore besoin d'utiliser hexdec () et bin2hex () ?

La réponse est: une plus grande flexibilité et compatibilité.

  • Bindec () ne convient que pour les chaînes pures composées de 0 et 1 , et est sujette à des erreurs lorsqu'il s'agit de grands nombres ou de données brutes binaires telles que les flux d'octets.

  • Bin2Hex () et hexdec () peuvent traiter les chaînes binaires brutes, ce qui est plus stable et fiable lors de la gestion des paquets de données de bas niveau, du chiffrement ou du format de fichier analyse.

Explication de base de l'utilisation

1. Bin2hex () - binaire à hexadécimal

La fonction de cette fonction est de convertir une chaîne binaire (notez qu'il s'agit d'une chaîne binaire en php, pas d'une chaîne représentée par 0 et 1 ) en représentation hexadécimale:

 $data = "\x0A"; // La décimale est 10 Octets
$hex = bin2hex($data);
echo $hex; // Sortir: 0a

2. Hexdec () - hex

Convertir une chaîne hexadécimale en un entier décimal:

 $hex = "0a";
$decimal = hexdec($hex);
echo $decimal; // Sortir: 10

Utilisation combinée pour implémenter le binaire à décimal

Supposons que nous lisons un flux d'octets binaires à partir d'une API ou d'un fichier sous-jacent, et nous voulons le convertir en valeur décimale. Le code est le suivant:

 $binary = "\x01\x02"; // C'est deux octets: 00000001 00000010

$hex = bin2hex($binary);       // Sortir: 0102
$decimal = hexdec($hex);       // Sortir: 258

echo "La valeur décimale est: " . $decimal;

Le "\ x01 \ x02" ici est en fait équivalent au binaire 00000001 00000010 , et après combinaison, il est hexadécimal 0102 , qui est converti en décimal exactement 258.

Un scénario d'utilisation réel

Supposons que vous développez une interface qui communique avec un périphérique matériel qui vous renvoie 2 octets via une prise pour indiquer la température, et les données d'origine que vous recevez sont les suivantes:

 $socketData = "\x00\x7D"; // Cela signifie hexadécimal 007D

Vous souhaitez le convertir en valeur décimale pour afficher la lecture de la température:

 $hex = bin2hex($socketData);   // Sortir: 007d
$temperature = hexdec($hex);   // Sortir: 125

echo "La température actuelle est: " . $temperature . "°C";

De plus: comment gérer les formats des grandes et des petits-endiens?

Si les données que vous recevez sont codées dans Little Endian (des octets bas sont à l'avant), vous devez d'abord inverser l'ordre des octets:

 $littleEndian = "\x7D\x00";
$bigEndian = strrev($littleEndian); // Transformez-vous à une grande commande finale
$decimal = hexdec(bin2hex($bigEndian)); // Correctement analysé comme 125

echo $decimal; // Sortir: 125

résumé

Bin2hex () et hexdec () sont des outils très importants pour le traitement des données binaires en PHP. Ils fonctionnent particulièrement bien dans le traitement du flux de fichiers, des protocoles sous-jacents, de l'analyse de données et d'autres scénarios. Bien que Bindec () soit plus adapté à la gestion des chaînes binaires simples, la combinaison de bin2hex () et hexdec () est sans aucun doute plus puissante et plus stable lorsqu'il est confronté à des formats de données plus complexes.

Si vous souhaitez apprendre ces techniques de traitement des données en profondeur, vous pouvez visiter:

<code> https://gitbox.net/php/hexdec-bin2hex-guide </code>

Maître ces compétences sous-jacentes pour rendre votre programmation PHP plus professionnelle et efficace!