22 lines
456 B
Text
22 lines
456 B
Text
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 to :string .format:".b" num 5 "=>"
|
|
pad to :string .format:".b" encoded 5 "=>"
|
|
pad to :string .format:".b" decoded 5 ":"
|
|
pad to :string decoded 2
|
|
]
|
|
]
|