RosettaCodeData/Task/Gray-code/Arturo/gray-code.arturo

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
]
]