W3docs

decbin()

Die Funktion decbin() in PHP konvertiert eine Dezimalzahl in eine binäre Darstellung und gibt sie als string zurück.

Die Funktion decbin() wandelt eine dezimale (Basis 10) Ganzzahl in ihre binäre (Basis 2) Darstellung um und gibt sie als string zurück. Sie ist das Gegenstück zu bindec(), das die umgekehrte Konvertierung durchführt. Diese Seite behandelt die Syntax, den Rückgabewert, Besonderheiten bei negativen Zahlen und die Formatierung der Ausgabe.

Syntax

decbin(int $num): string
  • $num — die zu konvertierende Dezimalganzzahl. Gleitkommazahlen werden stillschweigend zu Ganzzahlen gekürzt, und boolean-Werte werden umgewandelt (true wird zu 1).
  • Rückgabewert — ein string aus 0- und 1-Zeichen. Da es sich um einen string und keine Zahl handelt, werden führende Nullen nie erzeugt, und das Ergebnis lässt sich sicher verketten oder auffüllen.

Einfaches Beispiel

php— editable, runs on the server

Wir weisen einen Dezimalwert zu, übergeben ihn an decbin() und geben den zurückgegebenen string aus. Dezimal 10 entspricht 1010 in Binärdarstellung (8 + 2).

Mehrere Werte konvertieren

Da die Funktion einen einfachen string zurückgibt, lässt er sich direkt formatieren. Hier einige gängige Konvertierungen:

<?php
echo decbin(0);   // 0
echo "\n";
echo decbin(1);   // 1
echo "\n";
echo decbin(255); // 11111111
echo "\n";
echo decbin(256); // 100000000
?>

255 ist der größte Wert, der in ein Byte passt – deshalb ergibt er acht 1-Bits.

Ausgabe auf eine feste Breite auffüllen

decbin() fügt niemals führende Nullen hinzu, sodass decbin(5) "101" zurückgibt, nicht "00000101". Wenn Sie eine feste Bitbreite benötigen (um zum Beispiel jeden Wert als Byte darzustellen), verwenden Sie str_pad():

<?php
$value = 5;

// Pad to 8 bits with leading zeros
echo str_pad(decbin($value), 8, "0", STR_PAD_LEFT); // 00000101
?>

Das funktioniert genau deshalb, weil der Rückgabewert ein string ist.

Negative Zahlen

PHP verfügt hier über keine dedizierte Vorzeichenbit-Behandlung: Eine negative Ganzzahl wird als vorzeichenloser Wert im Zweierkomplement über die gesamte Integer-Breite der Plattform interpretiert. Auf einem 64-Bit-System gibt decbin(-1) 64 Einsen zurück:

<?php
echo decbin(-1);
// 1111111111111111111111111111111111111111111111111111111111111111
?>

Wenn Sie eine feste, vorhersehbare Breite benötigen, maskieren Sie den Wert zunächst — zum Beispiel liefert decbin(-1 & 0xFF) 11111111 (eine 8-Bit-Ansicht).

Hin- und Rückkonvertierung mit bindec()

decbin() und bindec() sind Umkehrfunktionen: Eine Zahl in Binär umzuwandeln und wieder zurück ergibt den ursprünglichen Wert:

<?php
$n = 42;
$binary = decbin($n);     // "101010"
$back = bindec($binary);  // 42

echo $back; // 42
?>

Wann verwendet man diese Funktion?

  • Beim Untersuchen oder Anzeigen von Bit-Mustern während des Debuggens von bitweisen Operationen (&, |, ^, <<, >>).
  • Beim Erstellen binärer string-Darstellungen für Lehrzwecke, Protokollierung oder einfache Datenkodierung.
  • Beim Arbeiten mit Berechtigungs- oder Flag-Bitmasks, bei denen die einzelnen Bits sichtbar sein sollen.

Verwandte Funktionen

PHP enthält eine Familie von Basis-Konvertierungshilfsfunktionen. Wählen Sie diejenige, die zu Ihrer Quell- und Zielbasis passt:

Fazit

Die Funktion decbin() wandelt eine dezimale Ganzzahl in einen binären string um. Drei Dinge sind zu beachten: Das Ergebnis ist ein string (verwenden Sie daher str_pad() für feste Breiten), negative Zahlen werden im Zweierkomplement über die gesamte Integer-Breite dargestellt, und bindec() kehrt die Konvertierung um.

Übungen

Übung
Was ist der Zweck der Funktion decbin() in PHP?
Was ist der Zweck der Funktion decbin() in PHP?
Was this page helpful?