在C++中从uint数组中获取位

chhkpiq4  于 2022-11-20  发布在  其他
关注(0)|答案(1)|浏览(185)

假设 我 有 一 个 uint32_t , N 个 元素 的 数组 , 只有 把 整个 N*32 位 分解 成 小 片段 , 数组 的 内容 才 有 意义 。
碎片 大小 可能 非常 不 规则 :1 个 5 位 的 段 、 2 个 7 位 的 段 、 1 个 48 位 的 段 ... ... 任何 模式 都 是 可能 的 。
打开 阵列 Package 的 最 快 方法 是 什么 ?
我 想 用 一 个 大 的 std::bitset<N*32> , 转换 成 一 个 字符 串 并 读取 这个 子 字符 串 ;但 有点 慢 。 另 一 种 可能 性 是 , 对于 每个 片段 , 我 想 :

  • 在 数组 中 查找 起始 " 指针 " 的 索引
  • 在 结束 " 指针 " 的 数组 中 定位 索引
  • 在 单个 已 定位 数组 元素 中 定位 起始/结束 位
  • 做 一 个 循环 , 一 点 一 点 地 读取 , 然后 合并

但 我 敢 打赌 一定 有 更 简单 的 工作 。
你 知道 吗 ?
谢谢

iaqfqrcu

iaqfqrcu1#

打开阵列 Package 的最快方法是什么?
按位运算。

相关问题