Heim >Backend-Entwicklung >PHP-Problem >So konvertieren Sie eine hexadezimale Gleitkommazahl in eine reelle Zahl in PHP

So konvertieren Sie eine hexadezimale Gleitkommazahl in eine reelle Zahl in PHP

PHPz
PHPzOriginal
2023-04-11 09:11:30944Durchsuche

PHP ist eine weit verbreitete Programmiersprache mit prägnanter Syntax und einfach zu erlernen und zu verwenden. In PHP sind Gleitkommazahlen ein sehr wichtiger Datentyp, und hexadezimale Gleitkommazahlen sind eine übliche Darstellung von Gleitkommazahltypen. In diesem Artikel wird erklärt, wie man hexadezimale Gleitkommazahlen in reelle Zahlen umwandelt.

In PHP können Sie die Funktion hex2bin verwenden, um Hexadezimalzahlen in Binärzahlen umzuwandeln. Beispielsweise können wir die Hexadezimalzahl 0x4054000000000000 mit dem folgenden Code in die Binärzahl $b umwandeln:

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

An diesem Punkt ist der Wert der Variablen $b die Binärzahl 010000000101010000000000000000000000000000000000 00000000000 0000, diese Zahl ist eine Gleitkommazahl mit doppelter Genauigkeit Punktnummer gemäß dem IEEE 754-Standard. Das Format entspricht 0,25.

Als nächstes müssen wir die Entpackfunktion verwenden, um die Binärzahl in eine reelle Zahl umzuwandeln. Die Entpackfunktion kann Binärdaten in mehrere Variablen entpacken und entsprechend dem angegebenen Format analysieren.

Beim Parsen von Gleitkommazahlen mit doppelter Genauigkeit in reelle Zahlen müssen wir den Formatoperator d verwenden. Wenn Sie beispielsweise die Daten in der Variablen $b in eine reelle Zahl analysieren möchten, können Sie den folgenden Code verwenden:

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

Zu diesem Zeitpunkt ist der Wert der Variablen $result die reelle Zahl 0,25.

In der tatsächlichen Entwicklung müssen wir möglicherweise mehrere hexadezimale Gleitkommazahlen in reelle Zahlen umwandeln und sie in einem Array speichern. Hier ist ein einfacher Beispielcode:

$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);

Der Code definiert zunächst ein Array $hex_array, das zwei hexadezimale Gleitkommazahlen enthält. Verwenden Sie dann eine foreach-Schleife, um jede Hexadezimalzahl in $hex_array zu durchlaufen, sie in reelle Zahlen umzuwandeln und die Ergebnisse in einem neuen Array $float_array zu speichern. Verwenden Sie abschließend die Funktion print_r, um den Inhalt von $float_array auszugeben.

Wenn wir den obigen Code ausführen, können wir die folgende Ausgabe erhalten:

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

Diese Ausgabe zeigt, dass nach der Konvertierung die erste Hexadezimalzahl in $hex_array auf 0,25 und die zweite Hexadezimalzahl auf 0,5 geparst wird.

Zusammenfassend lässt sich sagen, dass die Methode zum Konvertieren hexadezimaler Gleitkommazahlen in reelle Zahlen sehr einfach ist. Verwenden Sie einfach die Funktionen hex2bin und unpack. Es ist zu beachten, dass beim Parsen einer Gleitkommazahl mit doppelter Genauigkeit in eine reelle Zahl das Formatzeichen d verwendet werden muss. Das Verständnis dieser Inhalte kann Entwicklern helfen, die Features und Funktionen von PHP besser zu nutzen und die Effizienz und Leistung des Programms zu verbessern.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie eine hexadezimale Gleitkommazahl in eine reelle Zahl in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn