位图为什么适合表示固定数量资源和事件集合?
位图用一个 Bit 表示一个固定编号资源,空间紧凑,集合并交和查找空闲位可借助按字运算或 CLZ/CTZ。它适合容量已知、只需占用状态的对象,不适合存储复杂元数据。
Question Bank
按知识、方向与难度筛选;每道题都有分层回答和工程追问。
位图用一个 Bit 表示一个固定编号资源,空间紧凑,集合并交和查找空闲位可借助按字运算或 CLZ/CTZ。它适合容量已知、只需占用状态的对象,不适合存储复杂元数据。
SPSC 可以让生产者独占写索引、消费者独占读索引,但发布索引前必须保证数据写入已对另一执行单元可见,读取索引后也要建立相应顺序。volatile 只约束编译器访问,不能完整替代原子和屏障。
应预先限定容量和装载因子,选择开放寻址或固定节点池,定义冲突、删除标记和表满行为。平均 O(1) 不代表最坏 O(1),实时路径还需限制探测次数或改用更可预测结构。
阻塞延时最简单但占用执行上下文;周期采样连续 N 次一致适合普通按键;积分器对随机抖动更稳;状态机能表达按下、释放、长按和连击。采样周期与阈值应来自波形和交互需求。
Qm.n 用整数保存缩放后的值,加减需同尺度,乘法产生双倍小数位并通常用更宽中间值再舍入右移,除法则先扩展。每一步都要分析动态范围、舍入、饱和和符号移位语义。
N 点滑动平均对窗口内样本等权,易理解但需保存历史并引入约半窗口延迟;一阶 IIR 只保存少量状态,计算和内存更低,但相位与响应由系数决定。选择应基于噪声频谱、响应时间和定点误差。
有限内存中队列不可能无限吸收速率差,必须定义满时策略:阻塞生产者、拒绝新数据、覆盖最旧数据、按优先级丢弃或降低采样率。策略取决于数据价值和实时约束,并要有水位监控。
校准主要补偿内部偏置或增益误差,过采样在噪声足够且样本独立时可降低随机噪声;理论上每增加约 1 Bit 分辨率需要约 4 倍样本,但不能消除参考源误差、非线性和系统性偏差。