Lưu ý: nửa đầu của thử thách này đến từ thử thách trước đó của Martin Ender, Visualize Bit Weaving .
Cái ác ngôn ngữ lập trình bí truyền có một hoạt động thú vị trên các giá trị byte mà nó gọi là "dệt".
Nó thực chất là một hoán vị của tám bit của byte (không quan trọng chúng ta bắt đầu đếm từ đâu, vì mẫu này là đối xứng):
- Bit 0 được chuyển sang bit 2
- Bit 1 được chuyển sang bit 0
- Bit 2 được chuyển sang bit 4
- Bit 3 được chuyển sang bit 1
- Bit 4 được chuyển sang bit 6
- Bit 5 được chuyển sang bit 3
- Bit 6 được chuyển sang bit 7
- Bit 7 được chuyển sang bit 5
Để thuận tiện, đây là ba đại diện khác của hoán vị. Như một chu kỳ:
(02467531)
Như một ánh xạ:
57361402 -> 76543210 -> 64725031
Và như một danh sách các cặp ánh xạ:
[[0,2], [1,0], [2,4], [3,1], [4,6], [5,3], [6,7], [7,5]]
Sau khi 8
dệt, byte về cơ bản được thiết lập lại.
Ví dụ, dệt số 10011101
(nằm 157
trong cơ sở 10) sẽ tạo ra 01110110
(nằm 118
trong cơ sở 10).
Đầu vào
Chỉ 256
có đầu vào hợp lệ, cụ thể là tất cả các số nguyên giữa 0
và 255
bao gồm. Điều đó có thể được thực hiện trong bất kỳ cơ sở nào, nhưng nó phải nhất quán và bạn phải chỉ định nó nếu cơ sở bạn chọn không phải là cơ sở mười.
Bạn có thể không pad-pad đầu vào của bạn.
Đầu ra
Bạn nên xuất kết quả của bit dệt, trong bất kỳ cơ sở nào, cũng phải nhất quán và được chỉ định nếu không phải là cơ sở mười.
Bạn có thể không đệm các đầu ra của bạn.
Liên quan: Trực quan hóa Bit Dệt