【问题标题】:Unpack a bit from a binary string with Ruby使用 Ruby 从二进制字符串中解包一点
【发布时间】:2011-04-22 08:21:22
【问题描述】:

我正在使用String::unpack 从二进制流中解压缩一堆整数并加倍。如何从该比特流中解压缩单个比特?我找不到使用 unpack 解码单个位的特定指令。

【问题讨论】:

    标签: ruby binary unpack


    【解决方案1】:

    解包可以深入到字节级别。您可以使用'C' format 读取一个无符号字节,然后您可以使用位掩码查询各个映射。

    【讨论】:

    • 当该位位于流的末尾并使用“C”指令再读取 7 个位时,我是否会冒越界的风险?
    • @alikens 我不这么认为。当流进入 ruby​​ 时,它必须由字节组成。没有部分字节之类的东西。如果数据只有 9 位,那么它将被表示为 2 个字节,其余的将用零填充。
    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 2011-09-09
    • 2023-03-27
    • 2011-10-12
    • 2011-03-06
    相关资源
    最近更新 更多