gray2num グレイ符号を整数に変換する
unsigned gray2num(unsigned gray);
gray グレイ符号
グレイ符号に対応する整数
unsigned gray2num(unsigned gray)
{
unsigned mask;
int flag;
flag = 0;
for (mask = 1 << (sizeof(unsigned) - 1); mask != 0; mask >>= 1) {
if (flag) {
if (gray & mask) flag = 0;
gray ^= mask;
} else
if (gray & mask) flag = 1;
}
return gray;
}