Definamos un lenguaje simple que opera en un solo valor de 8 bits. Define tres operaciones bit a bit (la explicación del código supone una value
variable de 8 bits ):
!
Negar el bit menos significativo (value ^= 1
)<
Ajuste de desplazamiento a la izquierda (value = value << 1 | value >> 7
)>
ajuste de desplazamiento a la derecha (value = value >> 1 | value << 7
)
Entrada:
Dos números de 8 bits, a y b . Como son de 8 bits, también puedes tomarlos como personajes.
Salida:
La forma más corta de ir de a a b, con las tres operaciones definidas anteriormente. Puede devolver una cadena o una matriz de caracteres, o definir valores constantes y distintos para cada operación y devolver una matriz de esos (sí, también podría decir <
medias >
y >
medias <
), pero explique su formato de salida en su respuesta.
Si hay varias formas, igualmente largas, puede generar una o todas ellas.
Reglas:
- Puedes enviar un programa o función
- Se aplican lagunas estándar
- El envío con la menor cantidad de bytes en cada idioma gana (no se aceptará ninguna respuesta)
Las soluciones sin fuerza bruta (o al menos no solo fuerza bruta) podrían obtener mi voto positivo.
Casos de prueba:
12, 13 => '!'
1, 2 => '<'
254, 253 => '<'
5, 5 => ''
98, 226 -> '<!>'
64, 154 -> '!>!>>>!>'
177, 164 -> '!>>!>>>!'
109, 11 -> '>>!>!>>'
126, 92 -> '!>!>!>!<' or '!>!>>!<!'
26, 85 -> '<!<<!<!<' or '<!<<!<!>' or '<!<<<!>!'
123, 241 -> '!>!<<!' or '>!<!<!'
236, 50 -> '<<!<!>' or '<<<!>!'
59, 246 -> '<<!>'
132, 95 -> '!<<!<!<!'
74, 53 -> '!>>>!>!'
171, 127 -> '<<!<<!<'
109, 141 -> '!>>>'
185, 92 -> '!>'
166, 201 -> '!<!>>>' or '<!>!>>'
77, 155 -> '<!'
124, 181 -> '!<<<<!>>' or '!>>>>!>>'
108, 85 -> '!<<<!<!<!<' or '!<<<!<!<!>' or '!<<<!<<!>!' or '!>>>!>!>!<' or '!>>>!>!>!>' or '!>>>!>>!<!'
185, 144 -> '<!<<!<!'
70, 179 -> '<<<!<!>' or '<<<<!>!' or '>>>>!>!'
Aquí hay un programa para generar algunos más.