22 lines
598 B
Groovy
22 lines
598 B
Groovy
def binary = { i, minBits = 1 ->
|
|
def remainder = i
|
|
def bin = []
|
|
while (remainder > 0 || bin.size() <= minBits) {
|
|
bin << (remainder & 1)
|
|
remainder >>>= 1
|
|
}
|
|
bin
|
|
}
|
|
|
|
println "number binary gray code decode"
|
|
println "====== ====== ========= ======"
|
|
(0..31).each {
|
|
def code = grayEncode(it)
|
|
def decode = grayDecode(code)
|
|
def iB = binary(it, 5)
|
|
def cB = binary(code, 5)
|
|
printf(" %2d %1d%1d%1d%1d%1d %1d%1d%1d%1d%1d %2d",
|
|
it, iB[4],iB[3],iB[2],iB[1],iB[0], cB[4],cB[3],cB[2],cB[1],cB[0], decode)
|
|
println()
|
|
}
|