Position actuelle: Accueil> Derniers articles> Comment réaliser une conversion flexible de HexDec avec Sprintf?

Comment réaliser une conversion flexible de HexDec avec Sprintf?

gitbox 2025-05-28

1. Introduction à la fonction hexdec ()

La fonction de la fonction hexdec () est de convertir une chaîne hexagonale en un entier décimal. La syntaxe est la suivante:

 $decimal = hexdec("1A");

Le code ci-dessus convertit la chaîne "1a" en décimal 26 . Il convient de noter que hexdec () est sensible à la casse, et les résultats de "1a" et "1a" sont les mêmes.

2. Introduction à la fonction sprintf ()

sprintf () est utilisé pour formater les variables en chaînes. Nous pouvons l'utiliser pour formater des entiers en chaînes hexadécimales avec un cas spécifié:

 $hexLower = sprintf("%x", 255); // Sortir "ff"
$hexUpper = sprintf("%X", 255); // Sortir "FF"

% x représente le format hexadécimal minuscule, et % x représente la majuscule.

3. Hexdec et Sprintf sont utilisés ensemble

En combinant hexdec () et sprintf () , nous pouvons implémenter la conversion de cas de toute chaîne hexagonale:

 $originalHex = "a1b2c3";
$decimal = hexdec($originalHex);          // Convertir en décimal
$upperHex = sprintf("%X", $decimal);      // Convertir en capital hexadécimal
$lowerHex = sprintf("%x", $decimal);      // Convertir en minuscules en minuscules

Après avoir exécuté le code ci-dessus:

  • $ upperhex est "A1b2c3"

  • $ LowerHex est "A1B2C3"

Cette approche convient particulièrement aux formats d'entrée unifiés ou à l'amarrage avec des systèmes externes sensibles à la casse, tels que certaines interfaces API qui nécessitent des chaînes hexadécimales en majuscules.

4. Exemple d'application: Contrôle des cas hexadécimaux dans le codage de l'URL

Parfois, nous devons construire une URL contenant un codage hexadécimal, et le codage % xx dans l'URL peut nécessiter un cas uniforme. Par exemple:

 $char = "#";
$encoded = strtoupper(bin2hex($char)); // obtenir "23"
$url = "https://gitbox.net/page.php?param=%" . $encoded;

L'URL de sortie est:

 https://gitbox.net/page.php?param=%23

Si vous souhaitez utiliser les minuscules, remplacez simplement Strtoupper () par strtolower () , ou utilisez directement Sprintf ('% x', ord ($ char)) .

5. Résumé

Analyser toute chaîne hexadeci dans un entier via hexdec () , puis l'utilisation de sprintf () peut facilement contrôler si le format hexadécimal de sortie est en majuscule ou en minuscules. Cette méthode est non seulement simple, mais a également une forte compatibilité et convient à divers scénarios tels que la conversion de codage et la mise en forme des données.

La maîtrise de la combinaison de ces deux fonctions peut vous rendre plus à l'aise lorsque vous traitez avec des cordes hexadécimales.