2010-12-12 16 views
5

En PHP, tengo algunas variables enteras con valores de 0-65535. Necesito hacer un eco/imprimirlo directamente, NO como una secuencia impresa de caracteres, como imprimir la cadena "1281", sino el valor binario sin formato. También lo necesito para que el entero binario enviado a la salida siempre sea exactamente de 2 bytes (se envían cero bytes si es necesario para que siempre sean 2 bytes). ¿Cómo hago esto en php?salida entero binario sin procesar en php

+1

El valor binario es un conjunto de tensiones eléctricas de alta y baja dentro de un circuito. ¿Cómo le gustaría representar esos voltajes de una manera que los humanos puedan percibir? En realidad, NO desea imprimir una representación de cadena, solo desea imprimir una representación de cadena diferente del número. Usted está pidiendo ver el número escrito en la base 2 en lugar de la base 10. Ambas son solo representaciones de cuerdas de los voltajes. –

+3

@Dan, pidió un valor bruto, no electricidad cruda. Nunca dijo que no quisiera una cuerda, solo que no quería una cadena de caracteres en dígitos ASCII. –

+1

@Dan: Básicamente quiere el equivalente PHP de este bit de C: 'fwrite (& some_int16_value, sizeof (int16_t), 1, fp)'. Al menos me lo lee así. –

Respuesta

3

Si es posible, utilice pack.

5

Para más detalles sobre la respuesta de las mu, que desea:

pack("S", $num)); 

ej .:

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 
Cuestiones relacionadas