📜  为 2 的补码设计一个粉饼机

📅  最后修改于: 2022-05-13 02:24:08.324000             🧑  作者: Mango

为 2 的补码设计一个粉饼机

Mealy 机是一个有限状态机,它的当前状态和当前输入决定了这台机器的输出。

2的补码
它是对二进制数的数学运算。它作为有符号数表示的方法用于计算。其相对于 2 N的补码将二进制补码定义为 N 位数。

逻辑:-
首先计算二进制数的 1 的补码,将 1 转换为 0,将 0 转换为 1,然后将其加 1。例如,如果二进制数是 1011,那么它的 1 的补码是 0100,它的 2 的补码是 0101

设计粉机:

  1. 取初始状态 A。
  2. 如果初始状态有 n 个零,它将保持初始状态。
  3. 每当找到第一个输入 1 时,它就会给出输出 1 并进入状态 B。
  4. 在状态 B 中,如果输入为零,则输出为 1。如果输入为 1,则输出为 0。
  5. 然后将状态 B 设置为最终状态。

方法如下:

  1. 从右到左开始。
  2. 忽略所有的 0。
  3. 当 1 出现时忽略它,然后对每个数字取 1 的补码。

图 – 2 的补码 Mealy 机器

示例 1:

  1. 让我们取 001,我们知道它的 2 的补码是 (110+1 = 111)。
  2. 所以从右到左扫描。
  3. 在状态 A 上,“1”首先进入阶段 B,并在输出中写入 1。
  4. 在状态 B 上,将“0”替换为“1”,反之亦然。
  5. 所以最后我们得到了 111 作为输出。
  6. 请注意,输出也按从右到左的顺序打印。

示例 2:

  1. 让我们取 01,我们知道它的 2 的补码是 (10+1 = 11)。
  2. 所以从右到左扫描。
  3. 在状态 A 上,“1”首先进入阶段 B,并在输出中写入 1。
  4. 在状态 B 上,将“0”替换为“1”,反之亦然。
  5. 所以最后我们得到了 11 作为输出。
  6. 请注意,输出也按从右到左的顺序打印。