2011-06-23 48 views

回答

3

您可以使用c或C来做到这一点。像:

pack('C', 234); 

c是有符号的,C是无符号的。

+0

c是char,是否可以这样使用? –

+0

是的!!!它工作!谢谢! –

5
echo $test = pack('C', 1); 

包根据格式给出参数转换成二进制字符串。

这个函数的思想来自Perl,所有格式化代码的工作原理与Perl中的一样。但是,有一些缺少的格式代码,例如Perl的“u”格式代码。

注意符号和无符号值之间的区别只影响函数解包(),其中为功能包()给出了符号和无符号格式代码

代码都是相同的结果

a NUL-padded string 
A SPACE-padded string 
h Hex string, low nibble first 
H Hex string, high nibble first 
c signed char 
C unsigned char 
s signed short (always 16 bit, machine byte order) 
S unsigned short (always 16 bit, machine byte order) 
n unsigned short (always 16 bit, big endian byte order) 
v unsigned short (always 16 bit, little endian byte order) 
i signed integer (machine dependent size and byte order) 
I unsigned integer (machine dependent size and byte order) 
l signed long (always 32 bit, machine byte order) 
L unsigned long (always 32 bit, machine byte order) 
N unsigned long (always 32 bit, big endian byte order) 
V unsigned long (always 32 bit, little endian byte order) 
f float (machine dependent size and representation) 
d double (machine dependent size and representation) 
x NUL byte 
X Back up one byte 
@ NUL-fill to absolute position 
3

为了得到正确的格式,并添加前导零这样的00000001 使用这样的:

<?php 
// Add leading zeros 
$bin = sprintf("%08d", decbin(26)); // "00011010" 
?> 

抢答http://php.net/manual/en/function.decbin.php

+0

老,但谢谢,这正是我所需要的:-) – Jek

+0

谢谢,这帮了我一些其他的东西,sprintf是我现在最好的事情,因为自从切片面包。 – DarrenK

相关问题