23 lines
473 B
Plaintext
23 lines
473 B
Plaintext
get "libhdr"
|
|
|
|
let grayEncode(n) = n neqv (n >> 1)
|
|
|
|
let grayDecode(n) = grayDecodeStep(0, n)
|
|
and grayDecodeStep(r, n) =
|
|
n = 0 -> r,
|
|
grayDecodeStep(r neqv n, n >> 1)
|
|
|
|
let binfmt(n) =
|
|
n = 0 -> 0,
|
|
(n & 1) + 10 * binfmt(n >> 1)
|
|
|
|
let printRow(n) be
|
|
$( let enc = grayEncode(n)
|
|
let dec = grayDecode(enc)
|
|
writef("%I2: %I5 => %I5 => %I5 => %I2*N",
|
|
n, binfmt(n), binfmt(enc), binfmt(dec), dec)
|
|
$)
|
|
|
|
let start() be
|
|
for i = 0 to 31 do printRow(i)
|