Turing machine for 1’s and 2’s complement

Prerequisite – Turing Machine, 1’s and 2’s complement of a Binary Number

Problem-1:

Draw a Turing machine to find 1’s complement of a binary number.

1’s complement of a binary number is another binary number obtained by toggling all bits in it, i.e., transforming the 0 bit to 1 and the 1 bit to 0.

Example:



Approach:

  1. Scanning input string from left to right
  2. Converting 1’s into 0’s
  3. Converting 0’s into 1’s
  4. Move the head to the start when BLANK is reached.

Steps:

  • Step-1. Convert all 0’s into 1’s and all 1’s into 0’s and go right if B found go to left.
  • Step-2. Then ignore 0’s and 1’s and go left & if B found go to right
  • Step-3. Stop the machine.

Here, q0 shows the initial state and q1 shows the transition state and q2 shows the final state.
And 0, 1 are the variables used and R, L shows right and left.

Explanation:

  • State q0 replace ‘1’ with ‘0’ and ‘0’ with ‘1’ and move to right.
  • When BLANK is reached move towards left.
  • Using state ‘q2’ we reach start of the string.
  • When BLANK is reached move towards right and reaches the final state q2.

Problem-2:

Draw a Turing machine to find 2’s complement of a binary number.

2’s complement of a binary number is 1 added to the 1’s complement of the binary number.

Example:

Approach:

  1. Scanning input string from right to left
  2. Pass all consecutive ‘0’s
  3. For first ‘1’ comes, do nothing
  4. After that, Converting 1’s into 0’s and Converting 0’s into 1’s
  5. Stop when BLANK is reached.

Steps:

  • Step-1. First ignore all 0’s and 1’s and go to right & then if B found go to left.
  • Step-2. Then ignore all 0’s and go left, if 1 found go to left.
  • Step-3. Convert all 0’s into 1’s and all 1’s into 0’s and go to left & if B found go to right and stop the machine.

Here, q0 shows the initial state and q1 and q2 shows the transition state and q3 shows the final state.
And 0, 1 are the variables used and R, L shows right and left.

Explanation:

  • Using state ‘q0’ we reach end of the string.
  • When BLANK is reached move towards left.
  • Using state ‘q1’ we passes all 0’s and move left first 1 is found.
  • Pass single ‘1’ and move left.
  • Using state ‘q2’ we compliment the each digit and move left.
  • When BLANK is reached move towards right and reaches the final state q2.


My Personal Notes arrow_drop_up

Small things always make you to think big

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.