RosettaCodeData/Task/Gray-code/FutureBasic/gray-code.basic

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