使用 Ruby 从二进制字符串中解包一点
Posted
技术标签:
【中文标题】使用 Ruby 从二进制字符串中解包一点【英文标题】:Unpack a bit from a binary string with Ruby 【发布时间】:2011-04-22 08:21:22 【问题描述】:我正在使用String::unpack
从二进制流中解压缩一堆整数并加倍。如何从该比特流中解压缩单个比特?我找不到使用 unpack 解码单个位的特定指令。
【问题讨论】:
【参考方案1】:解包可以深入到字节级别。您可以使用'C' format 读取一个无符号字节,然后您可以使用位掩码查询各个映射。
【讨论】:
当该位位于流的末尾并使用“C”指令再读取 7 个位时,我是否会冒越界的风险? @alikens 我不这么认为。当流进入 ruby 时,它必须由字节组成。没有部分字节之类的东西。如果数据只有 9 位,那么它将被表示为 2 个字节,其余的将用零填充。以上是关于使用 Ruby 从二进制字符串中解包一点的主要内容,如果未能解决你的问题,请参考以下文章