在过去的几个小时里,我一直在思考这个问题。这里有很多类似的问题,但没有完全相同的问题,而且我见过的所有技术似乎都没有奏效。
我有一个从程序中的输入生成的字节序列(整数)——每个字节代表 BMP 图像中像素的红色、绿色或蓝色值。我本质上需要提取每个字节的比特流表示;也就是那个字节的二进制序列。
我一直在使用 and 的许多不同变体pack()
,unpack()
但我没有得出正确的结果。
例如:
sub convertToBinary {
my $str = unpack("B32", pack("N", shift));
return $str;
}
我也试过:
my $str = unpack("b8", shift);
,
my $str = unpack("B8", shift);
,
my $str = unpack("b*", shift);
以及许多其他变体;他们似乎都没有工作。我不觉得提取一个字节的位模式应该太难了..只有八个'1'或'0',对吧?
我在这里想念什么?