在过去的几个小时里,我一直在围绕这个问题喋喋不休.这里有很多类似的问题,但没有什么相同的,我见过的技术似乎都没有用.
我有一个字节序列(整数),我从我的程序中的输入生成 - 每个字节代表BMP图像中像素的红色,绿色或蓝色值.我基本上需要提取每个字节的比特流表示; 也就是说,该字节的二进制序列.
我一直在使用许多不同的变化pack()
和unpack()
,但我不出来有正确的结果.
例如:
sub convertToBinary {
my $str = unpack("B32", pack("N", shift));
return $str;
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
my $str = unpack("b8", shift);
,
my $str = unpack("B8", shift);
,
my $str = unpack("b*", shift);
还有很多其他的变化; 他们似乎都没有工作.我不觉得提取一个字节的位模式应该太难了......只有八个'1'或'0',对吧?
我在这里错过了什么?
我想你正在寻找sprintf
sub convertToBinary {
return sprintf '%08b', shift;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2141 次 |
最近记录: |