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À̶ó¸é, ±× ´ÙÀ½ÀÇ ºñÆ®´Â ¹ÝÀüÇÏÁö ¾Ê´Â´Ù.