我有两个相关的问题(在 Perl 中):
- 将数据写入二进制文件,格式为:单个位标志后跟 8 位
- 回读相同的格式
我尝试了这个(以及其他变体,但对于我的生活,我无法弄清楚):
binmode(OUT);
my $bit = pack("B1", '1');
my $byte = pack("H2", "02");
print OUT $bit . $byte;
使用十六进制编辑器,我看到我得到 16 位:
1000000000000020
我想要的是 9 位:
100000020
另外:假设我写出其中两个模式。这意味着我最终得到 9 + 9 = 18 位。我不确定如何处理最后一个字节(填充?)
这是为了压缩和解压缩文件,空间非常宝贵。我希望有一些我不知道的简单的惯用方式来做到这一点。