Die Datenumwandlung ist ein sehr häufiger Betrieb bei der täglichen PHP -Programmierung, insbesondere wenn es sich um die zugrunde liegenden Kommunikation, Verschlüsselungsalgorithmen oder Daten analysiert, für die häufig eine Konvertierung zwischen binären, hexadezimalen und dezimalen Konvertierung erforderlich ist. In diesem Artikel werden Sie vermitteln, wie Sie durch zwei PHP -native Funktionen, Hexdec () und Bin2hex () eine effiziente Konvertierung von Binär zu Dezimaler erzielen können.
PHP liefert die BindEc () -Funktion, um binäre Zeichenfolgen direkt in Dezimalzahlen umzuwandeln. Warum müssen wir noch Hexdec () und bin2hex () verwenden?
Die Antwort lautet: größere Flexibilität und Kompatibilität.
Binec () ist nur für reine Zeichenfolgen geeignet, die aus 0 und 1 bestehen, und ist anfällig für Fehler, wenn es sich um große Zahlen oder binäre Rohdaten wie Byte -Streams handelt.
Bin2hex () und HexDec () können rohe binäre Zeichenfolgen verarbeiten, was stabiler und zuverlässiger ist, wenn Datenpakete mit niedriger Ebene, Verschlüsselung oder Dateiformat analysiert werden.
Die Funktion dieser Funktion besteht darin, eine binäre Zeichenfolge (Beachten Sie, dass es sich um eine binäre Zeichenfolge in PHP handelt, nicht um eine Zeichenfolge, die durch 0 und 1 dargestellt wird) in eine hexadezimale Darstellung:
$data = "\x0A"; // Decimal ist 10 Bytes von
$hex = bin2hex($data);
echo $hex; // Ausgabe: 0a
Konvertieren Sie eine hexadezimale Schnur in eine Dezimalbezahlung:
$hex = "0a";
$decimal = hexdec($hex);
echo $decimal; // Ausgabe: 10
Angenommen, wir lesen einen binären Byte -Stream aus einer API oder einer zugrunde liegenden Datei, und wir möchten ihn in einen Dezimalwert konvertieren. Der Code ist wie folgt:
$binary = "\x01\x02"; // Dies sind zwei Bytes: 00000001 00000010
$hex = bin2hex($binary); // Ausgabe: 0102
$decimal = hexdec($hex); // Ausgabe: 258
echo "Der Dezimalwert ist: " . $decimal;
Das "\ x01 \ x02" ist hier tatsächlich gleichwertig zu binary 00000001 00000010 und nach der Kombination ist es hexadezimal 0102 , das genau 258 in Dezimalheit umgewandelt wird.
Angenommen, Sie entwickeln eine Schnittstelle, die mit einem Hardware -Gerät kommuniziert, das Ihnen 2 Bytes über einen Sockel zurückgibt, um die Temperatur anzuzeigen, und die ursprünglichen Daten, die Sie erhalten, lautet wie folgt:
$socketData = "\x00\x7D"; // Das bedeutet hexadezimal 007D
Sie möchten es in einen Dezimalwert umwandeln, um den Temperaturablesen anzuzeigen:
$hex = bin2hex($socketData); // Ausgabe: 007d
$temperature = hexdec($hex); // Ausgabe: 125
echo "Die Stromtemperatur ist: " . $temperature . "°C";
Wenn die von Ihnen erhaltenen Daten in Little Endian codiert sind (niedrige Bytes sind vorne), müssen Sie zuerst die Byte -Bestellung umkehren:
$littleEndian = "\x7D\x00";
$bigEndian = strrev($littleEndian); // Wenden Sie sich an große Endreihenfolge
$decimal = hexdec(bin2hex($bigEndian)); // Richtig analysiert wie 125
echo $decimal; // Ausgabe: 125
Bin2hex () und HexDec () sind sehr wichtige Werkzeuge zur Verarbeitung von Binärdaten in PHP. Sie können besonders gut im Verarbeitungsdateifluss, zugrunde liegenden Protokollen, Datenanalysen und anderen Szenarien abschneiden. Obwohl BindEc () besser zum Umgang mit einfachen Binärketten geeignet ist, ist die Kombination von Bin2hex () und HexDec () zweifellos leistungsfähiger und stabiler, wenn sie komplexere Datenformate haben.
Wenn Sie diese Datenverarbeitungstechniken eingehend lernen möchten, können Sie besuchen:
<Code> https://gitbox.net/php/hexdec-in2hex-guide </code>
Beherrschen Sie diese zugrunde liegenden Fähigkeiten, um Ihre PHP -Programmierung professioneller und effizienter zu gestalten!