Ruby распаковывать двоичные файлы в произвольные биты - PullRequest
1 голос
/ 13 марта 2020

Существует метод распаковки для построения представления двоичной строки в виде массива целых чисел, строк и т. Д. c, но я не могу найти способ разбить на произвольные биты (например, 11 b i ts.

Ruby распаковка двоичного файла решает проблему для строк произвольной длины в байтах, но не работает для битов.

Я хотел бы реализовать как-то так:

'binarydata'
  .unpack('b11b11b11b11b11') # => ["01000110100", ... ]     
  .map { |b| b.to_i(2) }     # => [564, 948, 628, 308, 372]
  .pack('magic')             # => 'binarydata'

Проблема в том, что он не читается и строит строки (которые не выглядят производительно). Кроме того, для распаковки необходимо знать размер (потому что 'b11*' не является допустимой строкой шаблона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...