-3

我有一个字符串,其中包含45f5f5ca1997b35bf09b8e0932b0d693967d0608a3c

如何获取该字符串的前 16 个字节?

4

2 回答 2

5

字符串由称为“字符”的元素组成(可能是也可能不是字节)。要获取由另一个字符串的前 16 个字符组成的字符串,可以使用以下命令:

 substr($s, 0, 16)
于 2017-09-29T20:14:43.970 回答
2

看起来您需要将十六进制转换为字节。

my $hex = "45f5f5ca1997b35bf09b8e0932b0d693967d0608a3c";

my @bytes = map { hex } $hex =~ m/(..)/g;


use Data::Dumper;
print Dumper(\@bytes);

print join('', map { sprintf("%x", $_) } @bytes);

随意将数组大小限制为 16 个元素(substr($hex, 0, 16*2))。

于 2017-09-29T20:44:38.777 回答