Umwandlung von Dezimal in Binär
Steffen
- php
Hallo,
ich habe folgendes Problem. Ich habe ein Formular mit vielen Ckeckboxen, die ich in einen Code Zusammenfassen will. Ich dachte mir, das ich die Checkboxen binär (also aktiv="1" inaktiv="0") übergebe. Diesen Binärcode will ich dann Hexadezimal speichern.
Die Umwandlung in Hexadezimal funktioniert auch einwandfrei. Allerdings bei der Zurückwandlung verschwinden die Vorstehenden Nullen. Diese bräuchte ich allerdings für eine erneute Feldzuweisung.
Bsp.:
Binär anfang: 01110000
Hexa : 70
Binär zurück: 1110000
Wie bekomm ich die Null am Anfang wieder.
Das ist jetzt nur ein kleines Beispiel mit 8 Checkboxen. Da müsste ich das so noch nicht machen. Aber im Finalen habe ich ca. 60 - 70 Checkboxen, die ich zu einem Code zusammen fassen will.
Gruß
Steffen
echo $begrüßung;
Wie bekomm ich die Null am Anfang wieder.
sprintf() kann dir dabei helfen.
echo "$verabschiedung $name";
Danke für die Antwort.
Ich habe mir was überlegt. Bei der Zurückwandlung setze ich ein F an den Anfang vom Hexwert. Dadurch habe ich bei der Umwandlung immer 1111 am Anfang stehen, und die restlichen Nullen sind dann auch wieder da. Diese 4 Einser entferne ich dann wieder aus dem Binärstring.
Steffen
Moin Steffen,
Ich habe mir was überlegt. Bei der Zurückwandlung setze ich ein F an den Anfang vom Hexwert. Dadurch habe ich bei der Umwandlung immer 1111 am Anfang stehen, und die restlichen Nullen sind dann auch wieder da. Diese 4 Einser entferne ich dann wieder aus dem Binärstring.
Hilft das weiter?
$bin=decbin(110);
$bin = substr("00000000",0,8 - strlen($bin)) . $bin;
regds
Mike©
echo $begrüßung;
Ich habe mir was überlegt. Bei der Zurückwandlung setze ich ein F an den Anfang vom Hexwert. Dadurch habe ich bei der Umwandlung immer 1111 am Anfang stehen, und die restlichen Nullen sind dann auch wieder da. Diese 4 Einser entferne ich dann wieder aus dem Binärstring.
Das ist eine Lösung, wenn auch keine besonders clevere. Aufgabe von sprintf() ist es, Formatierungen vorzunehmen. Warum sprintf() verwendet wurde, ergibt sich somit aus dessen Arbeitsweise, auch wenn diese Quelltext-Stelle undokumentiert bleibt. Der Sinn deines Konstrukts ist für Außenstehende nicht so einfach zu durchschauen, wenn er nicht dokumentiert wird. Du solltest auch nicht davon ausgehen, dass jeder die Erfahrung mit dem Verschwinden der führenden Nullen gemacht hat.
echo "$verabschiedung $name";