2010-12-12 71 views
5

En PHP, j'ai quelques variables entiers avec des valeurs de 0-65535. J'ai besoin de l'echo/imprimer directement, PAS comme une séquence imprimée de caractères comme l'impression de la chaîne "1281" mais la valeur binaire brute. Aussi j'en ai besoin pour que l'entier binaire envoyé à la sortie soit toujours exactement 2 octets (zéro octets envoyés si nécessaire pour que ce soit toujours 2 octets). Comment est-ce que je fais cela en php?sortie nombre entier binaire brut en php

+1

La valeur brute binaire est un ensemble de tensions électriques haute et basse à l'intérieur d'un circuit. Comment aimeriez-vous représenter ces tensions d'une manière que les humains peuvent percevoir? Vous ne voulez pas réellement imprimer une représentation de chaîne, vous voulez juste imprimer une représentation différente de chaîne du nombre. Vous demandez à voir le nombre écrit en base 2 au lieu de base 10. Les deux sont juste des représentations sous forme de chaîne des tensions. –

+3

@Dan, il a demandé une valeur brute, pas d'électricité brute. Il n'a jamais dit qu'il ne voulait pas de chaîne, mais simplement qu'il ne voulait pas de chaîne de caractères ASCII. –

+1

@Dan: Il veut essentiellement l'équivalent PHP de ce bit de C: 'fwrite (& some_int16_value, sizeof (int16_t), 1, fp)'. Au moins, ça me dit ça. –

Répondre

3

Oui, il est possible, utilisez pack.

5

Pour des précisions sur la réponse de mu, vous voulez:

pack("S", $num)); 

.: par exemple

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