Perl十六进制字符串到二进制字符串

时间:2012-03-26 16:03:20

标签: perl

我正在尝试将十六进制数字字符串转换为二进制字符串。如果我的输入字符串是41424344,那么我希望该字符串存储“ABCD”。怎么办呢?

3 个答案:

答案 0 :(得分:14)

您可以在pack的帮助下不使用正则表达式来执行此操作:

print pack 'H*', '41424344';

输出:

ABCD

答案 1 :(得分:1)

规范方法是

$input_string =~ s/(..)/chr(hex($1))/ge;

从输入中一次读取两个字符,调用hex(将十六进制数转换为十进制数),然后在每个输入上调用chr(将十进制数转换为字符)。

答案 2 :(得分:1)

s/([a-f0-9][a-f0-9])/chr(hex($1))/egi;