function gray_encode(integer n) return xor_bits(n,floor(n/2)) end function function gray_decode(integer n) integer r = 0 while n>0 do r = xor_bits(r,n) n = floor(n/2) end while return r end function integer e,d puts(1," N Binary Gray Decoded\n"& "== ===== ===== =======\n") for i=0 to 31 do e = gray_encode(i) d = gray_decode(e) printf(1,"%2d %05b %05b %2d\n",{i,i,e,d}) end for