Ruby将二进制文件解压缩为任意位

有一种解包方法,可以将二进制字符串表示为整数,字符串等的数组,但是我找不到拆分任意位的方法(例如11 b i ts)。

Ruby unpack binary解决了任意字节长度的字符串的问题,但不适用于位。

我想实现这样的东西:

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

问题在于它不可读并且无法构建字符串(看起来不高效)。另外,解压缩部分需要知道大小(因为'b11*'不是有效的模板字符串。

muma96132 回答:Ruby将二进制文件解压缩为任意位

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2650110.html

大家都在问