Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Turing machine for 1’s and 2’s complement

  • Last Updated : 07 Jul, 2021

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. 

Attention reader! Don’t stop learning now.  Practice GATE exam well before the actual exam with the subject-wise and overall quizzes available in GATE Test Series Course.

Learn all GATE CS concepts with Free Live Classes on our youtube channel.

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 complement 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
Recommended Articles
Page :