Mealy Machine for 1s Complement



Mealy machines are finite-state machine where the output depends on both the current state and the current input. In this chapter, we will take an example to understand how a Mealy machine can be used to compute the 1's complement of a binary number.

Recap of Mealy Machines

A Mealy machine is a type of finite-state machine. It consists of −

  • A finite set of states
  • A set of input symbols
  • A set of output symbols
  • A state transition function
  • An output function

The machine consists of states (S), input symbols (I), and output symbols (O). Its components include a transition function () that determines the next state based on the current state and input, and an output function () that determines the output based on the current state and input.

Concept of 1s Complement in Binary Systems

The 1's complement of a binary number is nothing but the number by inverting all bits, converting all 0s to 1s and all 1s to 0s (flipping), for example, if the given binary number is 10110, the 1s complement will be 01001.

Designing a Mealy Machine for 1s Complement

Let us see the states and transitions. To design a Mealy machine for the 1's complement, we need to define the states and transitions −

We will use only one state q0 as the following figure −

Mealy Machine for 1s Complement

The state transitions depend on the input symbol (0 or 1). State Transition Table is as follows −

Current State Input Next State Output
q0 0 q0 1
q0 1 q0 0

In the table, we can see that if the current state is q0 and the input is 0, the machine stays in q0 and outputs 1. Similarly if the current state is q0 and the input is 1, the machine stays in q0 and outputs 0.

Example of Walkthrough

For input 1010, we will track the machine for understanding how it is working −

  • Initial State: q0

    Input: 1

  • Current State: q0

    Output: 0

  • Next State: q0

    Input: 0

  • Current State: q0

    Output: 1

  • Next State: q0

    Input: 1

  • Current State: q0

    Output: 0

  • Next State: q0

    Input: 0

  • Current State: q0

    Output: 1

  • Next State: q0

The output for the input 1010 is 0101, which is the 1's complement.

Conclusion

A Mealy machine is an effective tool for generating output while consuming inputs. Computing the 1's complement of a binary number is one such example. In this chapter, we explained the concept by defining states and transitions and examples. We understood how to create a simple yet powerful machine that can handle binary inputs and produce the desired 1's complement efficiently.

Advertisements