我本质上是在寻求做一个典型/好的十六进制编辑器可以做的事情:
https://www.hhdsoftware.com/doc/hex-editor/statistics-statistics-tool-window.html
我希望能够计算每个字节的出现次数并将其放入表中,以便我可以确定“00”与“FF”相比的百分比。
我已经成功获得了熵,一旦我完成了上述工作,其他统计数据,例如均值、中位数和众数就变得多余了。
还有一个问题,我正在编译统计的二进制文件非常大,32mb+。
有什么建议吗?
最佳答案
use List::Util qw( sum );
use constant BLOCK_SIZE => 4*1024*1024;
open(my $fh, '<:raw', $qfn)
or die("Can't open \"$qfn\": $!\n");
my @counts = (0) x 256;
while (1) {
my $rv = sysread($fh, my $buf, BLOCK_SIZE);
die($!) if !defined($rv);
last if !$rv;
++$counts[$_] for unpack 'C*', $buf;
}
my $N = sum @counts;
关于perl - 如何在 Perl 中计算二进制统计数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53137917/