Last active
September 12, 2022 20:17
-
-
Save TarVK/ab3795714ba1940dc9f28303d395c37e to your computer and use it in GitHub Desktop.
https://turingmachinesimulator.com/ example input 1101__1011
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: binaryAddition | |
init: init0 | |
accept: done | |
// if cursor is started between 2 values: | |
// init: return2 | |
// Example input: 11011_10101 | |
// 13 states, 34 instructions (when removing init: 12 states, 31 instructions) | |
// Init that's not needed if input is left and right of the cursor | |
init0,_ | |
start,0,< | |
init0,0 | |
init0,0,> | |
init0,1 | |
init0,1,> | |
// Return to the start | |
return,0 | |
return2,_,< | |
return,1 | |
return2,_,< | |
return2,0 | |
return2,0,< | |
return2,1 | |
return2,1,< | |
return2,_ | |
start,0,< | |
// Start the bit adding | |
start,0 | |
add0,_,> | |
start,1 | |
add1,_,> | |
start,_ | |
finish,_,> | |
// Add 0 | |
add0,0 | |
add0,0,> | |
add0,1 | |
add0_1,1,> | |
add0_1,0 | |
add0,0,> | |
add0_1,1 | |
add0_1,1,> | |
add0,_ | |
return,0,< | |
add0_1,_ | |
return,1,< | |
// Add 1 | |
add1,0 | |
add1,0,> | |
add1,1 | |
add1_1,1,> | |
add1_1,0 | |
add1,0,> | |
add1_1,1 | |
add1_1,1,> | |
add1,_ | |
return,1,< | |
add1_1,_ | |
carryShift,0,< | |
carryShift,1 | |
carry,_,< | |
carry,0 | |
return2,1,< | |
carry,1 | |
carry,0,< | |
// Cleaning up | |
finish,0 | |
finish,_,> | |
finish,1 | |
finish2_1,_,> | |
finish2,0 | |
finish2,0,> | |
finish2,_ | |
done,0,> | |
finish2,1 | |
finish2_1,0,> | |
finish2_1,0 | |
finish2,1,> | |
finish2_1,1 | |
finish2_1,1,> | |
finish2_1,_ | |
done,1,> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Binary multiplication using a 4 symbol alphabet: