Turing machine for 1’s and 2’s complement
Last Updated :
16 Apr, 2024
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:
- Scanning input string from left to right
- Converting 1’s into 0’s
- Converting 0’s into 1’s
- 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
Approach:
- Start from the end of the input string.
- Pass all consecutive ‘0’s.
- When you encounter the first ‘1’, do nothing.
- After that, replace ‘1’ with ‘0’ and ‘0’ with ‘1’.
- Stop when you reach the beginning of the string.
States:
- q0: Initial state
- q1, q2: Transition states
- q3: Final state
Symbols:
- 0, 1: Binary digits
- B: Blank symbol
- R, L: Right and left movements
Steps:
- In state q0, move right until you encounter a non-blank symbol. Transition to state q1.
- In state q1, continue moving right until you encounter the first ‘1’. Transition to state q2.
- In state q2, replace ‘1’ with ‘0’ and ‘0’ with ‘1’. Move left.
- When encountering a blank symbol, transition to state q3.
- In state q3, move right until you reach the end of the string. Halt 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.
Share your thoughts in the comments
Please Login to comment...