29 lines
499 B
Plaintext
29 lines
499 B
Plaintext
proc gray_encode(word n) word:
|
|
n >< (n >> 1)
|
|
corp
|
|
|
|
proc gray_decode(word n) word:
|
|
word r;
|
|
r := n;
|
|
while
|
|
n := n >> 1;
|
|
n > 0
|
|
do
|
|
r := r >< n
|
|
od;
|
|
r
|
|
corp
|
|
|
|
proc main() void:
|
|
word i, enc, dec;
|
|
for i from 0 upto 31 do
|
|
enc := gray_encode(i);
|
|
dec := gray_decode(enc);
|
|
writeln(i:2, ": ",
|
|
i:b:5, " => ",
|
|
enc:b:5, " => ",
|
|
dec:b:5, " => ",
|
|
dec:2)
|
|
od
|
|
corp
|