Nota: la primera mitad de este desafío proviene del desafío anterior de Martin Ender, Visualize Bit Weaving .
El lenguaje de programación esotérico evil tiene una operación interesante sobre los valores de bytes que llama "tejido".
Es esencialmente una permutación de los ocho bits del byte (no importa desde qué extremo comencemos a contar, ya que el patrón es simétrico):
- El bit 0 se mueve al bit 2
- El bit 1 se mueve al bit 0
- El bit 2 se mueve al bit 4
- El bit 3 se mueve al bit 1
- El bit 4 se mueve al bit 6
- El bit 5 se mueve al bit 3
- El bit 6 se mueve al bit 7
- El bit 7 se mueve al bit 5
Por conveniencia, aquí hay otras tres representaciones de la permutación. Como un ciclo:
(02467531)
Como mapeo:
57361402 -> 76543210 -> 64725031
Y como una lista de pares de mapeo:
[[0,2], [1,0], [2,4], [3,1], [4,6], [5,3], [6,7], [7,5]]
Después de los 8
tejidos, el byte se restablece esencialmente.
Por ejemplo, tejer el número 10011101
(que está 157
en la base 10) producirá 01110110
(que está 118
en la base 10).
Entrada
Solo hay 256
entradas válidas, es decir, todos los enteros entre 0
e 255
inclusive. Puede tomarse en cualquier base, pero debe ser coherente y debe especificarlo si la base que elige no es la base diez.
No puede poner a cero sus entradas.
Salida
Debe generar el resultado del tejido de bits, en cualquier base, que también debe ser coherente y especificado si no es la base diez.
Puede poner a cero sus salidas.
Relacionado: Visualice el tejido de bits