Perl шестнадцатеричная строка в двоичную строку - PullRequest
7 голосов
/ 26 марта 2012

Я пытаюсь преобразовать строку шестнадцатеричных цифр в двоичную строку.Если моя входная строка 41424344, то я бы хотел, чтобы строка сохраняла «ABCD».Как это можно сделать?

Ответы [ 3 ]

14 голосов
/ 26 марта 2012

Вы можете сделать это без использования регулярных выражений с помощью pack:

print pack 'H*', '41424344';

Выход:

ABCD
1 голос
/ 26 марта 2012
s/([a-f0-9][a-f0-9])/chr(hex($1))/egi;
1 голос
/ 26 марта 2012

Канонический метод:

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

Это читает два символа за раз от ввода, вызывая hex (преобразование шестнадцатеричного числа в десятичное число) и затем chr (преобразование десятичного числа в символ) на каждом входе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...