Maison  >  Article  >  développement back-end  >  Comment convertir un nombre hexadécimal à virgule flottante en nombre réel en php

Comment convertir un nombre hexadécimal à virgule flottante en nombre réel en php

PHPz
PHPzoriginal
2023-04-11 09:11:30918parcourir

PHP est un langage de programmation largement utilisé avec une syntaxe concise et facile à apprendre et à utiliser. En PHP, les nombres à virgule flottante sont un type de données très important, et les nombres à virgule flottante hexadécimaux sont une représentation courante des types de nombres à virgule flottante. Cet article explique comment convertir des nombres hexadécimaux à virgule flottante en nombres réels.

En PHP, vous pouvez utiliser la fonction hex2bin pour convertir des nombres hexadécimaux en nombres binaires. Par exemple, nous pouvons convertir le nombre hexadécimal 0x4054000000000000 en nombre binaire $b en utilisant le code suivant :

$hex = '4054000000000000';
$b = hex2bin($hex);

À ce stade, la valeur de la variable $b est le nombre binaire 01000000010101000000000000000000000000000000000000. 00000000 0000, qui est une virgule flottante double précision nombre selon la norme IEEE 754 Le format représente 0,25.

Ensuite, nous devons utiliser la fonction unpack pour convertir le nombre binaire en nombre réel. La fonction unpack peut décompresser les données binaires en plusieurs variables et les analyser selon le format spécifié.

Lors de l'analyse de nombres à virgule flottante double précision en nombres réels, nous devons utiliser l'opérateur de format d. Par exemple, si vous souhaitez analyser les données de la variable $b en un nombre réel, vous pouvez utiliser le code suivant :

$result = unpack('d', $b)[1];

À ce stade, la valeur de la variable $result est le nombre réel 0,25.

Dans le développement réel, nous devrons peut-être convertir plusieurs nombres hexadécimaux à virgule flottante en nombres réels et les stocker dans un tableau. Voici un exemple de code simple :

$hex_array = ['4054000000000000', '4004000000000000'];
$float_array = [];

foreach ($hex_array as $hex) {
    $b = hex2bin($hex);
    $float = unpack('d', $b)[1];
    $float_array[] = $float;
}

print_r($float_array);

Le code définit d'abord un tableau $hex_array contenant deux nombres hexadécimaux à virgule flottante. Ensuite, utilisez une boucle foreach pour parcourir chaque nombre hexadécimal dans $hex_array, convertissez-les en nombres réels et stockez les résultats dans un nouveau tableau $float_array. Enfin, utilisez la fonction print_r pour afficher le contenu de $float_array.

En exécutant le code ci-dessus, nous pouvons obtenir le résultat suivant :

Array
(
    [0] => 0.25
    [1] => 0.5
)

Cette sortie montre qu'après la conversion, le premier nombre hexadécimal de $hex_array est analysé à 0,25 et le deuxième nombre hexadécimal est analysé à 0,5.

En résumé, la méthode pour convertir des nombres hexadécimaux à virgule flottante en nombres réels est très simple, il suffit d'utiliser les fonctions hex2bin et de décompresser. Il convient de noter que lors de l'analyse d'un nombre à virgule flottante double précision en un nombre réel, le caractère de format d doit être utilisé. Comprendre ces contenus peut aider les développeurs à mieux utiliser les fonctionnalités de PHP et à améliorer l'efficacité et les performances du programme.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn