2010-12-12 14 views
5

In PHP habe ich einige ganzzahlige Variablen mit Werten von 0-65535. Ich muss es echo/print es direkt, nicht als eine gedruckte Folge von Zeichen wie Drucken der Zeichenfolge "1281", sondern der rohen Binärwert. Ich brauche es auch, so dass die binäre Ganzzahl, die an die Ausgabe gesendet wird, immer genau 2 Bytes ist (bei Bedarf werden 0 Bytes gesendet, so dass es immer 2 Bytes sind). Wie mache ich das in PHP?Ausgabe Rohbinär Ganzzahl in PHP

+1

Der Raw-Binary-Wert innerhalb einer Schaltung eine Reihe von hohen und niedrigen elektrischen Spannungen ist. Wie möchten Sie diese Spannungen so darstellen, dass Menschen sie wahrnehmen können? Sie möchten eigentlich NICHT eine Zeichenfolgendarstellung ausdrucken, sondern nur eine andere Zeichenfolgendarstellung der Zahl. Sie werden gebeten, die in Base 2 geschriebene Nummer statt in Base 10 zu sehen. Beide sind nur String-Darstellungen der Spannungen. –

+3

@Dan, er fragte nach einem Rohwert, nicht rohe Elektrizität. Er sagte nie, dass er keine Zeichenkette haben wollte, nur dass er keine Zeichenkette ASCII-Zeichen haben wollte. –

+1

@Dan: Er möchte grundsätzlich das PHP-Äquivalent dieses Bits von C: 'fwrite (& some_int16_value, sizeof (int16_t), 1, fp)'. Zumindest liest es mir so vor. –

Antwort

3

Ja, es ist möglich, pack zu verwenden.

5

auf mu Antwort Um dies näher auszuführen, Sie wollen:

pack("S", $num)); 

Z. B .:

file_put_contents("test65535.bin", pack("S", 65535)); 
file_put_contents("test100.bin", pack("S", 100)); 
file_put_contents("test0.bin", pack("S", 0)); 

hexdump test65535.bin 
0000000 ffff 
0000002 

hexdump test100.bin 
0000000 0064 
0000002 

hexdump test0.bin 
0000000 0000 
0000002