Nota: la prima metà di questa sfida proviene dalla precedente sfida di Martin Ender, Visualize Bit Weaving .
Il malefico linguaggio di programmazione esoterico ha un'interessante operazione sui valori di byte che chiama "tessitura".
È essenzialmente una permutazione degli otto bit del byte (non importa da quale fine iniziamo il conteggio, poiché il modello è simmetrico):
- Il bit 0 viene spostato nel bit 2
- Il bit 1 viene spostato sul bit 0
- Il bit 2 viene spostato sul bit 4
- Il bit 3 viene spostato sul bit 1
- Il bit 4 viene spostato sul bit 6
- Il bit 5 viene spostato sul bit 3
- Il bit 6 viene spostato sul bit 7
- Il bit 7 viene spostato sul bit 5
Per comodità, ecco altre tre rappresentazioni della permutazione. Come un ciclo:
(02467531)
Come mappatura:
57361402 -> 76543210 -> 64725031
E come un elenco di coppie della mappatura:
[[0,2], [1,0], [2,4], [3,1], [4,6], [5,3], [6,7], [7,5]]
Dopo i 8
weavings, il byte viene sostanzialmente resettato.
Ad esempio, la tessitura del numero 10011101
(che è 157
nella base 10) produrrà 01110110
(che è 118
nella base 10).
Ingresso
Vi sono solo 256
input validi, vale a dire tutti i numeri interi compresi 0
e 255
compresi. Questo può essere preso in qualsiasi base, ma deve essere coerente e devi specificarlo se la base scelta non è la base dieci.
Si può non pari a zero-pad ingressi.
Produzione
Dovresti produrre il risultato della tessitura dei bit, in qualsiasi base, che deve anche essere coerente e specificato se non in base dieci.
È possibile azzerare le uscite.
Correlati: Visualizza la tessitura dei bit