num2gray Á¤¼ö¸¦ ±×·¹ÀÌ ºÎÈ£·Î º¯È¯ÇÑ´Ù
unsigned num2gray(unsigned num);
num Á¤¼ö
Á¤¼ö¿¡ ´ëÀÀÇÏ´Â ±×·¹ÀÌ ºÎÈ£
unsigned num2gray(unsigned num)
{
unsigned mask;
int flag;
flag = 0;
for (mask = 1 << (sizeof(unsigned) - 1); mask ! = 0; mask >>= 1) {
if (flag) num ^= mask;
if (num & mask) flag = ! flag;
}
return num;
}
Á¤¼ö¿¡ ´ëÀÀÇÏ´Â ±×·¹ÀÌ ºÎÈ£¸¦ ¿ä±¸ÇÏ·Á¸é , »óÀ§ÀÇ ºñÆ®·ÎºÎÅÍ ¼ø¼¿¡ º¸°í °¡ 1ÀÇ ºñÆ®°¡ ³ªÅ¸³ª¸é(ÀÚ) ´ÙÀ½ÀÇ ºñÆ®¸¦ ¹ÝÀü½ÃŲ´Ù. ¹Ý ¹Ù²Û ºñÆ®°¡ ¶Ç 1À̶ó¸é, ±× ´ÙÀ½ÀÇ ºñÆ®´Â ¹ÝÀüÇÏÁö ¾Ê´Â´Ù.