Рассматривать:
$tag = "4F";
$ tag — это строка, содержащая два символа: «4» и «F». Я хочу иметь возможность обрабатывать их как верхний и нижний полубайты, соответственно, целого байта (4F), чтобы можно было продолжить вычисление битовых комбинаций (01001111)
Поскольку это технически символы, они могут обрабатываться по-своему как байт каждый — 4 в таблице ASCII — 0x52, а F — 0x70.
Практически все встроенные функции PHP, которые позволяют манипулировать байтами (что я видел до сих пор), являются вариациями последнего описания: «4» — это 0x52, а не верхняя часть байта.
Я не знаю ни одного быстрого или встроенного способа заставить PHP справиться с этим так, как я хочу, но кажется, что он должен быть там.
Как мне преобразовать строку «4F» в байт 4F, или обработать каждый символ как клев в паре клев. Существуют ли какие-либо встроенные функции, позволяющие PHP обрабатывать такие строки, как «4F» или «3F0E», как пары кусочков?
Благодарю.
Если вы хотите «десятичное представление шестнадцатеричной цифры», hexdec
это один из способов пойти.
Если вы хотите «битовый шаблон для шестнадцатеричной цифры», то используйте base_convert
. Документы даже показывают пример этого маневра:
Пример # 1 Пример base_convert ()
$hexadecimal = 'a37334';
echo base_convert($hexadecimal, 16, 2);
Приведенный выше пример выведет:
101000110111001100110100
Других решений пока нет …