24 lines
384 B
AutoHotkey
24 lines
384 B
AutoHotkey
gray_encode(n){
|
|
return n ^ (n >> 1)
|
|
}
|
|
|
|
gray_decode(n){
|
|
p := n
|
|
while (n >>= 1)
|
|
p ^= n
|
|
return p
|
|
}
|
|
|
|
BinString(n){
|
|
Loop 5
|
|
If ( n & ( 1 << (A_Index-1) ) )
|
|
o := "1" . o
|
|
else o := "0" . o
|
|
return o
|
|
}
|
|
|
|
Loop 32
|
|
n:=A_Index-1, out .= n " : " BinString(n) " => " BinString(e:=gray_encode(n))
|
|
. " => " BinString(gray_decode(e)) " => " BinString(n) "`n"
|
|
MsgBox % clipboard := out
|