Open In App
Related Articles

Turing machine for 1’s and 2’s complement

Improve Article
Improve
Save Article
Save
Like Article
Like

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 is 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: 
 

2’s complement

2’s complement

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.

     

2’s complement 

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 complement the each digit and move left.
  • When BLANK is reached move towards right and reaches the final state q2.
Level Up Your GATE Prep!
Embark on a transformative journey towards GATE success by choosing Data Science & AI as your second paper choice with our specialized course. If you find yourself lost in the vast landscape of the GATE syllabus, our program is the compass you need.

Last Updated : 17 Feb, 2023
Like Article
Save Article
Similar Reads