2010-12-12 15 views
5

In PHP, ho alcune variabili intere con valori compresi tra 0 e 65535. Ho bisogno di echo/print direttamente, NON come una sequenza stampata di caratteri come stampare la stringa "1281" ma il valore binario grezzo. Inoltre ho bisogno di esso in modo che il numero intero binario inviato all'output sarà sempre esattamente 2 byte (zero byte inviati se necessario in modo che sia sempre 2 byte). Come faccio a farlo in PHP?numero intero binario in output in php

+1

Il valore binario crudo è un insieme di tensioni elettriche di alta e bassa all'interno di un circuito. Come ti piacerebbe rappresentare queste tensioni in un modo in cui gli umani possono percepire? In realtà NON si desidera stampare una rappresentazione di stringa, si desidera semplicemente stampare una rappresentazione di stringa diversa del numero. Stai chiedendo di visualizzare il numero scritto nella base 2 anziché nella base 10. Entrambe sono solo rappresentazioni di stringa delle tensioni. –

+3

@Dan, ha chiesto un valore grezzo, non elettricità grezza. Non ha mai detto che non voleva una stringa, solo che non voleva una stringa di caratteri ASCII. –

+1

@Dan: Praticamente vuole l'equivalente PHP di questo bit di C: 'fwrite (& some_int16_value, sizeof (int16_t), 1, fp)'. Almeno mi legge così. –

risposta

3

Sì, è possibile, utilizzare pack.

5

Per approfondire risposta di mu, si vuole:

pack("S", $num)); 

Es .:

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 
Problemi correlati