/* * C# Program to Create a Gray Code */ using System; public class Gray { public static ulong grayEncode(ulong n) { return n ^ (n >> 1); } public static ulong grayDecode(ulong n) { ulong i = 1 << 8 * 64 - 2; //long is 64-bit ulong p, b = p = n & i; while ((i >>= 1) > 0) b |= p = n & i ^ p >> 1; return b; } public static void Main(string[] args) { Console.WriteLine("Number\tGray"); for (ulong i = 0; i < 10; i++) { Console.WriteLine(string.Format("{0}\t{1}", i, Convert.ToString((long)grayEncode(i), 2))); } Console.Read(); } } /* Number Gray 0 0 1 1 2 11 3 10 4 110 5 111 6 101 7 100 8 1100 9 1101