Aktueller Standort: Startseite> Neueste Artikel> Wie Verwenden Sie die Binec () -Funktion von PHP in Verbindung mit Substr (), um Bit-Level-Operationen auf binären Zeichenfolgen zu implementieren?

Wie Verwenden Sie die Binec () -Funktion von PHP in Verbindung mit Substr (), um Bit-Level-Operationen auf binären Zeichenfolgen zu implementieren?

M66 2025-06-12

In PHP begegnen Sie bei der Verarbeitung von binären Zeichenfolgen häufig die Notwendigkeit, einige der Bits zu extrahieren oder zu modifizieren. Die BindEc () -Funktion kann binäre Zeichenfolgen in Dezimalzahlen umwandeln, während die Substr () -Funktion uns helfen kann, einen Teil der Zeichenfolge abzufangen. Die Verwendung der beiden zusammen ermöglicht Bit-Level-Operationen auf binären Zeichenfolgen.

Einführung in Binesec () und substr ()

  • BindEc (String $ Binary_String): int
    Konvertieren Sie eine binäre Darstellung einer Schnur in eine Dezimalbezahlung. Zum Beispiel: Binesec ('101') gibt 5 zurück.

  • Substr (String $ String, int $ start, int $ länge = null): String
    Schneiden Sie ein Substring aus einer Schnur. Zum Beispiel: Substr ('101101', 2, 3) gibt '110' zurück.

Beispiel: Extrahieren Sie mehrere Bits einer binären Schnur und konvertieren sie in Dezimal

Angenommen, es gibt eine binäre Schnur, die Sie ab Bit 3 eine 4-Bit-Binärzahl extrahieren und dann in die Dezimalheit umwandeln möchten.

 <?php
$binaryString = "1101011011"; // Original -Binärzapfen

// verwenden substr Abfangen vom Index 2 Die Startlänge ist 4 Substrings von(Beachten Sie den Index von0Start)
$subBinary = substr($binaryString, 2, 4); // "0101"

// verwenden bindec Konvertieren die abgefangene binäre Schnur in Dezimal
$decimalValue = bindec($subBinary);

echo "Binärer Substring: " . $subBinary . "\n";      // Ausgabe: 0101
echo "Der entsprechende Dezimalwert: " . $decimalValue . "\n"; // Ausgabe: 5
?>

Beispiel Erklärung

  • Substr ($ BinaryString, 2, 4) : Ausgehend vom dritten Zeichen der ursprünglichen Zeichenfolge (der Index von 0) beträgt die Länge 4 und erhält "0101" .

  • Binec ("0101") : Konvertieren "0101" in Dezimaler 5.

Erweitert: Ändern Sie ein bisschen eine binäre Zeichenfolge

Zusätzlich zum Extrahieren können Sie auch ein bestimmtes Bit der binären Zeichenfolge ändern:

 <?php
$binaryString = "1101011011";

// Wille5Bisschen(Der Index ist4)Wechseln zu1
$pos = 4;
$newBit = '1';

// Zeichenfolge ändern
$binaryString = substr_replace($binaryString, $newBit, $pos, 1);

echo "Modifizierte binäre Zeichenfolge: " . $binaryString . "\n";
?>

Zusammenfassen

Durch Kombination von Substr () -Innenanschlägen und Bindec () -Wertverkehrungsfunktionen können binäre Zeichenfolgen auf Bit -Ebene leicht extrahiert und konvertiert werden, und andere Funktionen der String -Betrieb können sogar eine komplexere Binärdatenverarbeitung realisieren.