【问题标题】:How do I read bit flags mixed with data?如何读取与数据混合的位标志?
【发布时间】:2012-05-24 04:05:47
【问题描述】:

我以前从未想过阅读二进制数据。我现在正在尝试学习,并制作一个简单的应用程序来从 FLAC 文件中读取标头数据并以人类可读的格式显示信息。

首先,假设我感兴趣的数据的第一位是 0x10000100,我如何使用 C# 读取第一位 (1),然后读取存储在后续 7 位中的 int 值?我已经知道如何使用 binaryreader 将字节读入字节数组...只是不知道如何在代码中解析这些数据。

提前致谢。

【问题讨论】:

    标签: c# binaryreader bitflags flac


    【解决方案1】:

    Binray "and" &, "or" |, "not" ~ 用于提取位。

    这是大概的代码:

    byte value = 0x84;
    bool flag = (value & 0x80) != 0;
    var intPart = value & ~0x80;
    

    【讨论】:

    • 酷,谢谢。您是否可以推荐任何资源来详细解释所有这些是如何工作的,以及为什么这些符号就是它的原因?我有点明白,但我还是觉得有点缺乏。
    • 搜索词 - “C# 位操作”或“C# 位操作”。这个问题stackoverflow.com/questions/93744/… 看起来有很多信息。请注意,该主题具有许多语言(C/Java/C#/JavaScript...)的通用语法,因此不必限制按语言搜索。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 2012-09-06
    • 2013-05-10
    • 1970-01-01
    • 2021-12-21
    • 2021-10-09
    • 2018-08-14
    相关资源
    最近更新 更多