我需要将整数转换为8bit,但是pack只能转换为16bit的二进制数据。 我在谷歌中搜索,但找不到任何东西。 有人可以帮忙吗?
最佳答案
echo $test = pack('C', 1);
根据格式将给定的参数打包成二进制字符串。
此函数的思想来自 Perl,所有格式化代码的工作方式与 Perl 相同。但是,缺少一些格式代码,例如 Perl 的“u”格式代码。
请注意,有符号和无符号值之间的区别仅影响函数 unpack(),而函数 pack() 对有符号和无符号格式代码给出相同的结果
代码是
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
关于php - 如何使用 PHP 将整数转换为 8 位二进制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6453061/