Skip to content

Instantly share code, notes, and snippets.

@danjimenezcr
Last active June 3, 2022 11:44
Show Gist options
  • Save danjimenezcr/4bd703a246dcf744c9f70a535389966e to your computer and use it in GitHub Desktop.
Save danjimenezcr/4bd703a246dcf744c9f70a535389966e to your computer and use it in GitHub Desktop.
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