18-1.ŸÀÔ

ÄÄÇ»ÅÍÀÇ ¸Þ¸ð¸®´Â 0°ú 1¸¸À» ±â¾ïÇÒ ¼ö ÀÖ´Â ºñÆ®·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ÀÌ Àý¿¡¼­´Â ÀÌ ´Ü¼øÇÑ ºñÆ®ÀÇ ÁýÇÕÀ¸·Î Å« ¼ö¿Í º¹ÀâÇÑ ½Ç¼ö µîÀÌ ¾î¶»°Ô ±â¾ïµÇ°í °ü¸®µÇ´ÂÁö¿¡ ´ëÇØ ¿¬±¸ÇØ º»´Ù. ÀÌ ³»¿ëÀº ´çÀå ½Ç¹«¿¡ µµ¿òÀ» ÁÙ ¼ö ÀÖ´Â ½Ç¿ëÀûÀÎ ÀÌ·ÐÀº ¾Æ´Ï¹Ç·Î ²À ¸ô¶óµµ »ó°üÀº ¾ø´Ù. ÇÏÁö¸¸ ŸÀÔÀÇ ³»ºÎ ±¸Á¶¸¦ ÀÌÇØÇÔÀ¸·Î½á ÄÄÆÄÀÏ·¯ÀÇ µ¿ÀÛÀ» Á» ´õ ±íÀÌÀÖ°Ô ÀÌÇØÇÏ°í ¸Þ¸ð¸®¿¡ ÀúÀåµÈ °ªÀ» Á÷Á¢ Æò°¡ÇÏ°í ´Ù·ê ¼ö ÀÖ´Â Á÷°ü·ÂÀ» Ű¿ï ¼ö ÀÖ´Ù.

18-1-°¡.Á¤¼öÀÇ ³»ºÎ

ÄÄÇ»ÅͰ¡ Á¤¼ö¸¦ ´Ù·ç´Â ¹æ¹ýÀº ºñ±³Àû °£´ÜÇÏ´Ù. 1°ú 0À» ±â¾ïÇÒ ¼ö ÀÖ´Â ÇϳªÀÇ ºñÆ®·Î µÎ °¡Áö »óŸ¦ Ç¥ÇöÇÒ ¼ö ÀÖÀ¸¸ç ÀÌ·± ºñÆ®¸¦ ¿©·¯ °³ ¸ðÀ¸¸é 1°ú 0ÀÇ Á¶ÇÕÀ¸·Î ´õ Å« ÀÌÁø¼ö¸¦ ³ªÅ¸³¾ ¼ö ÀÖ´Ù. ¸ÕÀú ºÎÈ£°¡ ¾ø´Â °æ¿ìÀÇ Á¤¼ö ±¸Á¶¸¦ ¿¬±¸ÇØ º¸ÀÚ. ÀϹÝÀûÀ¸·Î ºñÆ® n°³°¡ ¸ðÀÏ ¶§ 2n°¡ÁöÀÇ ¼ö¸¦ Ç¥ÇöÇÒ ¼ö ÀÖÀ¸¸ç ½ÃÀÛ ¼ö°¡ 0À̹ǷΠÃÖ´ë Ç¥Çö °¡´ÉÇÑ ¼ö´Â 2n-1ÀÌ µÈ´Ù. ºÎÈ£°¡ ÀÖÀ¸¸é ÃÖ´ë Ç¥Çö¼ö´Â Àý¹ÝÀÌ µÇÁö¸¸ À½¼ö¸¦ Ç¥ÇöÇÒ ¼ö ÀÖ´Ù.

2Áø¼öÀÇ °¢ ÀÚ¸®¼ö´Â 2ÀÇ °Åµì½Â¿¡ ÇØ´çÇÏ´Â °¡ÁßÄ¡¸¦ °¡Áø´Ù. 10Áø¼öÀÇ °¢ ÀÚ¸®¼ö°¡ ÀÏÀÚ¸®, ½ÊÀÚ¸®, ¹éÀÚ¸® µî 10ÀÇ °Åµì½Â¿¡ ÇØ´çÇÏ´Â °¡ÁßÄ¡¸¦ °¡Áö´Â °Í°ú ¸¶Âù°¡ÁöÀÌ´Ù. ÀÌÁø¼ö 101Àº °¢ ÀÚ¸®¼öÀÇ °¡ÁßÄ¡¸¦ °öÇØ ´õÇÏ¸é ½ÊÁø¼ö 5°¡ µÈ´Ù.

 

101 = 1*22+0*21+1*20 = 4+0+1 = 5

 

16ºñÆ® ±æÀÌÀÇ unsigned shortÇüÀº 216-1(65535)±îÁö Ç¥Çö °¡´ÉÇϰí 32ºñÆ® ±æÀÌÀÎ unsigned intÇüÀº 232-1(4294967295)ÀÇ ºñ±³Àû Å« °ªÀ» Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. º¯¼ö°¡ ±â¾ïÇÒ ¼ö ÀÖ´Â ÃÖ´ë Ç¥Çö ¹üÀ§¸¦ ³Ñ¾î¼³ °æ¿ì¸¦ ¿À¹öÇ÷οì(Overflow)¶ó°í Çϴµ¥ ¿À¹öÇ÷ο찡 ¹ß»ýÇÏ¸é º¯¼ö´Â ÃʰúµÈ °ªÀ» ±â¾ïÇÏÁö ¸øÇÏ°í ¾û¶×ÇÑ °ªÀ» °¡Áö°Ô µÈ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ º¸ÀÚ.

 

¿¹ Á¦ : IncOverflow

#include <Turboc.h>

 

void main()

{

     unsigned short us;

 

     us=65535;

     printf("us=%d\n",us);

     us++;

     printf("us=%d\n",us);

}

 

16ºñÆ® Å©±âÀÇ usº¯¼ö¿¡ ÀÌ º¯¼ö°¡ ±â¾ïÇÒ ¼ö ÀÖ´Â ÃÖ´ë°ª 65535¸¦ ´ëÀÔÇØ ³õ°í ÀÌ °ªÀ» 1Áõ°¡½ÃÄÑ º¸¾Ò´Ù. ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.

 

us=65535

us=0

 

65535¸¦ 1Áõ°¡½Ã۸é 65536ÀÌ µÇ´Âµ¥ ÀÌ °ªÀº 16ºñÆ®ÀÇ ÃÖ´ë Ç¥Çö ¹üÀ§¸¦ ³Ñ¾î ¼­¹Ç·Î ¿À¹öÇ÷ο찡 µÈ´Ù. us º¯¼ö´Â 65536À̶ó´Â °ªÀ» Á¦´ë·Î ±â¾ïÇÏÁö ¸øÇϰí 0ÀÌ µÇ¾î ¹ö¸®´Âµ¥ ºñÆ®ÀÇ ¼¼°è¿¡¼­ ÀÌ Çö»óÀ» Á» ´õ »ó¼¼ÇÏ°Ô »ìÆìº¸µµ·Ï ÇÏÀÚ.

65535´Â ÀÌÁø¼ö·Î 1ÀÌ 16°³ÀÎ ¼öÀε¥ ¿©±â¿¡ 1À» ´õÇϸé 1 ´ÙÀ½¿¡ 0ÀÌ 16°³ÀÎ ÀÌÁø¼ö(ÃÑ 17ÀÚ¸®)°¡ ¸¸µé¾îÁø´Ù. À̶§ ÃÖ»óÀ§ ºñÆ® 1Àº 16ºñÆ® ¹üÀ§ ¹Ù±ù¿¡ Á¸ÀçÇϹǷΠÀß·Á ³ª°¡°í ¸ðµç ºñÆ®´Â 0ÀÌ µÇ¹Ç·Î °á±¹ 16ºñÆ® ¹üÀ§¿¡¼­ 65536Àº ¿À¹öÇ÷ο쿡 ÀÇÇØ 0°ú °°Àº ¼ö°¡ µÇ´Â °ÍÀÌ´Ù. 8ºñÆ® ¹üÀ§¿¡¼­ 256(28)Àº 0°ú °°À¸¸ç 32ºñÆ® ¹üÀ§¿¡¼­ 4294967296(232)µµ °á±¹ 0ÀÌ´Ù. ¹Ý´ë·Î º¯¼ö°¡ ÃÖ¼Ò°ªº¸´Ù ´õ ÀÛÀº °ªÀ» °¡Áú °æ¿ì ÃÖ´ë°ªÀÌ µÇ¾î ¹ö¸®´Âµ¥ 16ºñÆ® Á¤¼ö 0À» 1°¨¼Ò½Ã۸é 65535°¡ µÈ´Ù.

ÀÌ·± Àǹ̿¡¼­ º¼ ¶§ ÄÄÇ»ÅÍÀÇ Á¤¼ö´Â ¼öÇÐÀÇ Á¤¼ö¿Í Á¤Àǰ¡ ¾à°£ ´Ù¸£´Ù°í ÇÒ ¼ö ÀÖ´Ù. ¼öÇÐÀÇ Á¤¼ö´Â ¿øÄ¢ÀûÀ¸·Î À½¾çÀ¸·Î ¹«ÇÑ´ë±îÁö Ç¥ÇöÇÒ ¼ö ÀÖÁö¸¸ ºñÆ® ¼¼°èÀÇ º¯¼ö´Â ±æÀÌ¿¡ µû¶ó Ç¥ÇöÇÒ ¼ö ÀÖ´Â ÃÖ¼Ò, ÃÖ´ë°ª¿¡ Á¦ÇÑÀÌ ÀÖ´Ù. µû¶ó¼­ Á¤¼öÇü ŸÀÔÀ» ¼±ÅÃÇÒ ¶§ Ç¥ÇöÇϰíÀÚ ÇÏ´Â °ªÀÇ ÃÖ´ë°ªÀ» Àß °í·ÁÇÏ¿© Àû´çÇÑ ±æÀÌÀÇ Å¸ÀÔÀ» ¼±ÅÃÇØ¾ß ÇÑ´Ù. ÀϹÝÀûÀ¸·Î ½Ç»ýȰ¿¡¼­ ¼ö½Ê¾ïÀÌ ³Ñ´Â ¼ö°¡ ÇÊ¿äÇÑ °æ¿ì´Â ¹«Ã´ µå¹°±â ¶§¹®¿¡ intÇüÀÌ¸é ¹«³­ÇÏ´Ù.