有两个不同但相关大小的向量。较大的是(2 * RESOLUTION) + INDEX_OFFSET
(例如2050),较小的是简单RESOLUTION
(例如1024)。我相信假设它uint16_t
可以用来包含向量索引是足够安全的。
通过增加resultIndex
2 来执行对较大向量的迭代。在每次迭代期间,对索引处的较小向量进行赋值(resultIndex - INDEX_OFFSET) / 2
。
本质上,代码依赖于这样的假设,无论INDEX_OFFSET
是奇数还是偶数,上述除以 2 将始终向下舍入,而与架构无关。例如,如果resultIndex
是 0 或 1,则预期为 0,如果是 2 或 3,则预期为 1,依此类推。在上述参数范围内,这是一个安全的假设吗?
注意我承认存在“除整数类型 - 结果可预测吗?” 但它似乎并不完全匹配。