32 lines
595 B
Plaintext
32 lines
595 B
Plaintext
// Gray Code
|
|
//https://rosettacode.org/wiki/Gray_code
|
|
|
|
local fn gray2bin(g As uint32) As uint32
|
|
uint32 b = g
|
|
While g
|
|
g = g >> 1
|
|
b = b Xor g
|
|
Wend
|
|
Return b
|
|
End fn = b
|
|
|
|
local fn bin2gray(b As uint32) As uint32
|
|
End fn = b Xor (b >> 1)
|
|
|
|
// ------=< MAIN >=------
|
|
|
|
uint32 i
|
|
Print " DEC Binary Gray GrayToBinary"
|
|
|
|
For i = 0 To 31
|
|
print str$(i) + " ";
|
|
if i < 10 then print " ";
|
|
print " " + right$(bin$(i),5);
|
|
print " -->";
|
|
print " " + right$(bin$(fn bin2gray(i)),5);
|
|
print " -->";
|
|
print " " + right$(bin$(fn gray2bin(fn bin2gray(i))),5)
|
|
Next
|
|
|
|
handleevents
|