<!-- Bit Finder --> 位查找器

# 位查找器

库: | 运算器
引入版本： | 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-0 到 Alt-9 可修改其 数据位宽 属性。

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

## 手形工具行为

无

## 文本工具行为

无

返回 库参考手册