arrays - 位标志数组的数据结构是什么?

标签 arrays haskell bitflags

我正在将一些命令式代码移植到 Haskell。我的目标是分析一个可执行文件,因此文本部分的每个字节都被分配了许多标志,这些标志都适合一个字节(准确地说是 6 位)。

在像 C 这样的语言中,我只会分配一个字节数组,将它们归零并随时更新它们。我如何在 Haskell 中有效地做到这一点?

换句话说:当我反汇编更多的文本部分时,我正在寻找一个具有按位访问和恒定时间更新的 ByteString。

编辑:当然,如果它具有类似的效率,任何类型的其他数据结构都可以。

最佳答案

Bool 未装箱数组的实现-s 在 array是一个压缩的位数组。您可以在 ST Monad 中对此类数组进行可变更新。 (这本质上与 C 中的运行时行为相同)。

关于arrays - 位标志数组的数据结构是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26312659/

相关文章:

c - 将结构数组传递给函数以输入值

php - 将 mysql 查询结果附加到变量

python - Python 中的字节级操作

树上的haskell折叠操作

parsing - 使 attoparsec 解析器递归

c - 确定字节中的哪一位被设置

sql - 为什么我的查询结果随机返回?

c - 列出 Linux/*nix 上的所有真实用户以及与他们相关的数据

powerapps - 如何检查 PowerApps 中是否设置了某个位?

python - 如何在 Python 中使用按位标志