Как создать строку данных менее 8 бит в PHP? - PullRequest
0 голосов
/ 07 мая 2020

Проблема

Я хочу создать двоичный заголовок для требуемого формата, предположим, что формат следующий:

+---------------------------------+--------+--------+---------------------------------+
| 4 Octets unsigned int (32 bits) | 2 bits | 5 bits | 4 Octets unsigned int (32 bits) |
+---------------------------------+--------+--------+---------------------------------+

Примечание: в настоящее время я с использованием pack('format', ...$args) функции PHP, но самый низкий тип данных - unsigned char, что составляет восемь бит , но то, что мне нужно, должно быть меньше 8 бит.

Пример

// Sample data: (0x000003a9, 0b10, 0b10011, 0x200007f0)
$first = 0x000003a9; // 937
$second = 0b01; // 2
$third = 0b10011; // 19
$fourth = 0x200007f0; // 536872944

// The dots (..) is the breaking point
$header = pack('N..N', $first, $second, $third, $fourth);
// The total size of the $header must be exactly 71 bits
...