Проблема
Я хочу создать двоичный заголовок для требуемого формата, предположим, что формат следующий:
+---------------------------------+--------+--------+---------------------------------+
| 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