Как рассматривать два символа в строке как байт? - PullRequest
0 голосов
/ 08 ноября 2018

Рассмотрим:

$tag = "4F";

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

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

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

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

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

Спасибо.

1 Ответ

0 голосов
/ 08 ноября 2018

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

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

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

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

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

101000110111001100110100

...