In PHP wird die BindEc () -Funktion verwendet, um binäre Zeichenfolgen in Dezimalzahlen umzuwandeln. Die grundlegende Verwendung ist sehr einfach. Durch die Übergabe einer reinen binären Schnur (bestehend aus 0 und 1) kann die entsprechende Dezimalgülleger zurückgegeben werden.
Zum Beispiel:
<Code> <? php echo Binesec ('1011'); // Ausgabe 11?> </Code>Wenn die eingehende binäre Zeichenfolge jedoch Leerzeichen enthält, wird die Funktion Binec () standardmäßig nicht unterstützt. Es analysiert die Zeichenfolge von Grund auf und stellt die Verarbeitung auf, wenn sie auf Zeichen stößt, die nicht 0 oder 1 sind, sodass Leerzeichen falsche Ergebnisse verursachen und sogar 0 zurückgeben.
Beispiel:
<Code> <? php echo Binesec ('101 1'); // Ausgabe 5, weil die Verarbeitung nach dem Begegnung mit einem Speicherplatz gestoppt wurde und tatsächlich '101'?> </Code> analysiert wurdeWie Sie sehen können, machen Leerzeichen BindEc () keine vollständigen binären Daten normal analysieren.
Wenn Sie Leerzeichen in Ihrer binären Zeichenfolge haben und korrekt konvertieren möchten, können Sie zunächst die Verarbeitungsfunktion von PHP verwenden, um die Leerzeichen zu entfernen und sie dann in BindEc () zu übergeben.
Beispiel:
<code> <? php $ binaryWithSpaces = '101 1101 001'; $ cleanBinary = str_replace ('', '', $ binaryWithSpaces); $ decimalValue = Binesec ($ CleanBinary); echo $ decimalValue; ?> </code>Hier werden alle Räume durch str_replace () entfernt, und dann wird Binec () aufgerufen, um sicherzustellen, dass das übergebene in eine reine binäre Schnur ist.
Wenn Sie andere Whitespace -Zeichen in Ihrer Zeichenfolge haben (z. B. Registerkartenzeichen \ t , Zeilenumbrüche \ n usw.), wird empfohlen, preg_replace () zu verwenden, um alle Whitespace zu entfernen:
<Code> <? php $ binaryWithHiteSpace = "101 \ t1101 \ n001"; $ cleanBinary = preg_replace ('/\ s+/', '', $ binaryWithHiteSpace); $ decimalValue = Binesec ($ CleanBinary); echo $ decimalValue; ?> </code>Dies stellt sicher, dass die binäre Zeichenfolge keine Whitespace -Zeichen hat, so dass Binec () genau analysiert werden kann.
Die Funktion Binesec () unterstützt keine binären String -Eingabe, die Leerzeichen oder andere Whitespace -Zeichen enthält.
Stellen Sie sicher, dass Sie alle Whitespace -Zeichen in der Eingabezeichenfolge löschen, bevor Sie Binec () verwenden.
Sie können Str_Replace ('', '', $ str) verwenden, um Leerzeichen zu entfernen oder die leistungsstärkeren preg_replace ('/\ s+/', '', $ str) zu verwenden, um alle Whitespace -Zeichen zu entfernen.
Nur durch die Verarbeitung einer sauberen reinen Binärqualität stellt sicher, dass Binec () Dezimalwerte korrekt zurückgibt.