######### 位查找器

库: 运算器
引入版本: 2.6.1
外观: #########

行为

该组件接收一个多位输入,并确定某一位的索引位置;索引从最低位开始计数,最低位的索引为 0。 它具体要输出哪一位的索引由“类型”属性决定。以下表格以 8 位输入 11010100 为例说明。

类型 对 11010100 的输出
最低位的 1 2
最高位的 1 7
最低位的 0 0
最高位的 0 5

以“最低位的 1”为例:从最低位(索引 0)开始向高位查找,最先遇到的 1 出现在索引 2(索引 0 和 1 均为 0),因此输出 2。 而“最高位的 1”则输出 7,因为最靠高位的 1 位于索引 7(同样以最低位为索引 0)。

南侧输出用于指示是否找到了目标位。 在上面输入 11010100 的各个例子中,目标位都能找到,因此南侧输出均为 1。 但若输入为 00000000,且组件要查找“最低位的 1”,则南侧输出为 0,东侧输出也会为 0。

若在查找过程中遇到既非 0 也非 1 的值(该位可能是悬空位或错误位),则两个输出都会全部变为错误位。 注意:只有在“找到目标位之前”先遇到问题位,才会出现这种情况。 例如输入为 x1010100:若查找“最低位的 1”,则在遇到 x 之前就已找到目标位,因此输出仍为 2; 但若查找“最高位的 1”或“最高位的 0”,则查找路径会先遇到更高位上的 x,从而输出为错误值。

引脚

西侧(输入,位宽与“数据位宽”一致)
用于查找目标位的多位输入。
东侧(输出,位宽按下述规则确定)
目标位的索引(最低位索引为 0)。 输出位宽取能表示最大可能索引所需的最小位数;最大索引为“数据位宽”减 1。
南侧(输出,位宽 1)
若找到目标位,则为 1; 若所有输入位均为目标值的相反值(因此找不到目标位),则为 0; 若在找到目标位之前遇到非 0、非 1 的值,则为错误值。

属性

当组件被选中或正在放置时,Alt-0Alt-9 可修改其 数据位宽 属性。

数据位宽
输入端的位宽。
类型
指定要查找的目标位:最低位的 0、最高位的 0、最低位的 1 或最高位的 1。

手形工具行为

文本工具行为

返回 库参考手册