23 lines
414 B
Plaintext
23 lines
414 B
Plaintext
toGray: function [n]-> xor n shr n 1
|
|
fromGray: function [n][
|
|
p: n
|
|
while [n > 0][
|
|
n: shr n 1
|
|
p: xor p n
|
|
]
|
|
return p
|
|
]
|
|
|
|
loop 0..31 'num [
|
|
encoded: toGray num
|
|
decoded: fromGray encoded
|
|
|
|
print [
|
|
pad to :string num 2 ":"
|
|
pad as.binary num 5 "=>"
|
|
pad as.binary encoded 5 "=>"
|
|
pad as.binary decoded 5 ":"
|
|
pad to :string decoded 2
|
|
]
|
|
]
|