为 2 的补码设计一个粉饼机
Mealy 机是一个有限状态机,它的当前状态和当前输入决定了这台机器的输出。
2的补码:
它是对二进制数的数学运算。它作为有符号数表示的方法用于计算。其相对于 2 N的补码将二进制补码定义为 N 位数。
逻辑:-
首先计算二进制数的 1 的补码,将 1 转换为 0,将 0 转换为 1,然后将其加 1。例如,如果二进制数是 1011,那么它的 1 的补码是 0100,它的 2 的补码是 0101
设计粉机:
- 取初始状态 A。
- 如果初始状态有 n 个零,它将保持初始状态。
- 每当找到第一个输入 1 时,它就会给出输出 1 并进入状态 B。
- 在状态 B 中,如果输入为零,则输出为 1。如果输入为 1,则输出为 0。
- 然后将状态 B 设置为最终状态。
方法如下:
- 从右到左开始。
- 忽略所有的 0。
- 当 1 出现时忽略它,然后对每个数字取 1 的补码。
图 – 2 的补码 Mealy 机器
示例 1:
- 让我们取 001,我们知道它的 2 的补码是 (110+1 = 111)。
- 所以从右到左扫描。
- 在状态 A 上,“1”首先进入阶段 B,并在输出中写入 1。
- 在状态 B 上,将“0”替换为“1”,反之亦然。
- 所以最后我们得到了 111 作为输出。
- 请注意,输出也按从右到左的顺序打印。
示例 2:
- 让我们取 01,我们知道它的 2 的补码是 (10+1 = 11)。
- 所以从右到左扫描。
- 在状态 A 上,“1”首先进入阶段 B,并在输出中写入 1。
- 在状态 B 上,将“0”替换为“1”,反之亦然。
- 所以最后我们得到了 11 作为输出。
- 请注意,输出也按从右到左的顺序打印。