Last active
June 3, 2022 11:44
-
-
Save danjimenezcr/4bd703a246dcf744c9f70a535389966e to your computer and use it in GitHub Desktop.
This file contains 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: binary increment | |
source code: |- | |
# Complemento a dos de un numero binario. | |
input: '0101010111' | |
blank: ' ' | |
start state: invertir | |
table: | |
#Estado de inversion de bits | |
invertir: | |
0 : {write: 1, R} #Si lee un 0 entonces escribe un 1 y se mueve al siguiente espacio en la cinta (A la derecha) | |
1 : {write: 0, R} #Si lee un 1 entonces escribe un 0 y se mueve al siguiente espacio en la cinta (A la derecha) | |
' ' : {L: sumar} #Si lee un espacio en blanco no escribe nada pero se mueve al siguiente estado de "sumar" y en la cinta se regresa a la izquierda | |
#Estado donde suma uno. | |
sumar: | |
1 : {write: 0, L} #Si lee un 1 se regresa a la izquierda y en el 1 que leyo coloca un 0 | |
[0,' ']: {write: 1, L: listo} # Si lee un 0 se regresa a la izquierda, escribe un 1 en el 0 que leyo y se pasa al estado final "Listo" | |
#Estado final "Listo" | |
listo: | |
# | |
positions: | |
invertir: {x: 204.93, y: 228.99} | |
sumar: {x: 362.61, y: 238.39, fixed: false} | |
listo: {x: 530.03, y: 221.67} | |
editor contents: |- | |
# Complemento a dos de un numero binario. | |
#Se define la entrada en la cinta | |
input: '0101010111' | |
#Se define el estado que es considerado como blanco | |
blank: ' ' | |
#Se define el estado inicial | |
start state: invertir | |
table: | |
#Estado de inversion de bits | |
invertir: | |
0 : {write: 1, R} #Si lee un 0 entonces escribe un 1 y se mueve al siguiente espacio en la cinta (A la derecha) | |
1 : {write: 0, R} #Si lee un 1 entonces escribe un 0 y se mueve al siguiente espacio en la cinta (A la derecha) | |
' ' : {L: sumar} #Si lee un espacio en blanco no escribe nada pero se mueve al siguiente estado de "sumar" y en la cinta se regresa a la izquierda | |
#Estado donde suma uno. | |
sumar: | |
1 : {write: 0, L} #Si lee un 1 se regresa a la izquierda y en el 1 que leyo coloca un 0 | |
[0,' ']: {write: 1, L: listo} # Si lee un 0 se regresa a la izquierda, escribe un 1 en el 0 que leyo y se pasa al estado final "Listo" | |
#Estado final "Listo" | |
listo: | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment