Remarque: la première moitié de ce défi provient du précédent défi de Martin Ender, Visualize Bit Weaving .
Le langage de programmation ésotérique mal a une opération intéressante sur les valeurs d'octets qu'il appelle "tissage".
Il s'agit essentiellement d'une permutation des huit bits de l'octet (peu importe de quelle extrémité nous commençons à compter, car le motif est symétrique):
- Le bit 0 est déplacé vers le bit 2
- Le bit 1 est déplacé vers le bit 0
- Le bit 2 est déplacé vers le bit 4
- Le bit 3 est déplacé vers le bit 1
- Le bit 4 est déplacé vers le bit 6
- Le bit 5 est déplacé vers le bit 3
- Le bit 6 est déplacé vers le bit 7
- Le bit 7 est déplacé vers le bit 5
Pour plus de commodité, voici trois autres représentations de la permutation. En cycle:
(02467531)
En tant que cartographie:
57361402 -> 76543210 -> 64725031
Et comme une liste de paires de la cartographie:
[[0,2], [1,0], [2,4], [3,1], [4,6], [5,3], [6,7], [7,5]]
Après 8
tissages, l'octet est essentiellement réinitialisé.
Par exemple, le tissage du nombre 10011101
(qui est 157
en base 10) produira 01110110
(qui est 118
en base 10).
Contribution
Il n'y a que des 256
entrées valides, à savoir tous les entiers compris entre 0
et 255
inclus. Cela peut être pris dans n'importe quelle base, mais il doit être cohérent et vous devez le spécifier si la base que vous choisissez n'est pas la base dix.
Vous ne pouvez pas mettre à zéro vos entrées.
Production
Vous devez sortir le résultat du tissage des bits, dans n'importe quelle base, qui doit également être cohérent et spécifié sinon en base dix.
Vous pouvez mettre à zéro vos sorties.
Connexe: Visualize Bit Weaving