RosettaCodeData/Task/Gray-code/Lobster/gray-code.lobster

20 lines
472 B
Plaintext

def grey_encode(n) -> int:
return n ^ (n >> 1)
def grey_decode(n) -> int:
var p = n
n = n >> 1
while n != 0:
p = p ^ n
n = n >> 1
return p
for(32) i:
let g = grey_encode(i)
let b = grey_decode(g)
print(number_to_string(i, 10, 2) + " : " +
number_to_string(i, 2, 5) + " ⇾ " +
number_to_string(g, 2, 5) + " ⇾ " +
number_to_string(b, 2, 5) + " : " +
number_to_string(b, 10, 2))