Как рассматривать два символа в строке как байт?

Рассматривать:

$tag = "4F";

$ tag - это строка, содержащая два символа: "4" и "F". Я хочу иметь возможность рассматривать их как верхний и нижний полубайты, соответственно, целого байта (4F), чтобы я мог продолжить вычисление битовых комбинаций (01001111)

Поскольку это технически символы, они могут обрабатываться по-своему как байт каждый - 4 в таблице ASCII - 0x52, а F - 0x70.

Практически все встроенные функции PHP, которые позволяют манипулировать байтами (что я видел до сих пор), являются вариациями в последнем описании: "4" - это 0x52, а не верхняя часть байта.

Я не знаю ни одного быстрого или встроенного способа заставить PHP справиться с этим так, как я хочу, но кажется, что он должен быть там.

Как мне преобразовать строку "4F" в байт 4F, или обработать каждый символ как клев в паре клев. Существуют ли какие-либо встроенные функции, позволяющие PHP обрабатывать такие строки, как "4F" или "3F0E", как пары кусочков?

Благодарю.

1 ответ

Если вы хотите "десятичное представление шестнадцатеричной цифры", hexdec это один из способов пойти.

Если вы хотите "битовый шаблон для шестнадцатеричной цифры", то используйте base_convert, Документы даже показывают пример этого маневра:

Пример #1 Пример base_convert()

$hexadecimal = 'a37334';
echo base_convert($hexadecimal, 16, 2);

Приведенный выше пример выведет:

101000110111001100110100

Другие вопросы по тегам