views:

156

answers:

2
+3  Q: 

graycode in .NET

Is there a built in gray code datatype anywhere in the .NET framework? Or conversion utility between gray and binary? I could do it myself, but if the wheel has already been invented...

A: 

There is nothing built-in as far as Gray code in .NET.

jspru
+7  A: 

Use this trick.

/*
        The purpose of this function is to convert an unsigned
        binary number to reflected binary Gray code.
*/
unsigned short binaryToGray(unsigned short num)
{
        return (num>>1) ^ num;
}

A tricky Trick: for up to 2^n bits, you can convert Gray to binary by performing (2^n) - 1 binary-to Gray conversions. All you need is the function above and a 'for' loop.

/*
        The purpose of this function is to convert a reflected binary
        Gray code number to a binary number.
*/
unsigned short grayToBinary(unsigned short num)
{
        unsigned short temp = num ^ (num>>8);
        temp ^= (temp>>4);
        temp ^= (temp>>2);
        temp ^= (temp>>1);
       return temp;
}
Artelius
Thank you, Jeff!
Artelius