假设 我 有 一 个 uint32_t
, N 个 元素 的 数组 , 只有 把 整个 N*32
位 分解 成 小 片段 , 数组 的 内容 才 有 意义 。
碎片 大小 可能 非常 不 规则 :1 个 5 位 的 段 、 2 个 7 位 的 段 、 1 个 48 位 的 段 ... ... 任何 模式 都 是 可能 的 。
打开 阵列 Package 的 最 快 方法 是 什么 ?
我 想 用 一 个 大 的 std::bitset<N*32>
, 转换 成 一 个 字符 串 并 读取 这个 子 字符 串 ;但 有点 慢 。 另 一 种 可能 性 是 , 对于 每个 片段 , 我 想 :
- 在 数组 中 查找 起始 " 指针 " 的 索引
- 在 结束 " 指针 " 的 数组 中 定位 索引
- 在 单个 已 定位 数组 元素 中 定位 起始/结束 位
- 做 一 个 循环 , 一 点 一 点 地 读取 , 然后 合并
但 我 敢 打赌 一定 有 更 简单 的 工作 。
你 知道 吗 ?
谢谢
1条答案
按热度按时间iaqfqrcu1#
打开阵列 Package 的最快方法是什么?
按位运算。