4-3-1.¾Ï½ÃÀû º¯È¯

º¯¼ö¿¡ °ªÀ» ´ëÀÔÇÒ ¶§ Á¿캯ÀÇ Å¸ÀÔÀÌ ÀÏÄ¡ÇØ¾ß Çϸç Àμö¸¦ ³Ñ±â°Å³ª ¸®ÅÏ°ªÀ» µ¹·ÁÁÙ ¶§µµ ÁÖ´Â ÂÊ°ú ¹Þ´Â ÂÊÀÇ Å¸ÀÔÀÌ °°¾Æ¾ß ÇÑ´Ù. ¾çÂÊÀÇ Å¸ÀÔÀÌ ¿ÏÀüÈ÷ ÀÏÄ¡ÇÏ¸é ¾Æ¹« ¹®Á¦°¡ ¾ø´Ù.

 

int a = 3;

int b = a;

 

Á¤¼öÇü º¯¼ö¸¦ Á¤¼ö »ó¼ö·Î ÃʱâÈ­ÇÏ°í Á¤¼öÇü º¯¼ö³¢¸® ´ëÀÔÇÏ´Ï Áö±ØÈ÷ Á¤»óÀÌ´Ù. ´ëºÎºÐÀÇ °æ¿ì ÀÌó·³ ¾çÂÊ Å¸ÀÔÀÌ °°Áö¸¸ ±×·¸Áö ¸øÇÒ °æ¿ì º¯È¯À» ÅëÇØ Å¸ÀÔÀ» ÀÏÄ¡½ÃŲ ÈÄ ´ëÀÔÇØ¾ß ÇÑ´Ù. ¸Å¹ø ¾çÂÊÀÇ Å¸ÀÔÀ» ¸ÂÃß´Â °ÍÀº ³Ê¹« ¹ø°Å·Î¿ö ÄÄÆÄÀÏ·¯°¡ ¾Ï½ÃÀûÀΠŸÀÔ º¯È¯À» Áö¿øÇÑ´Ù.

¾Ï½ÃÀû º¯È¯À̶õ »ç¿ëÀÚ°¡ ¿ä±¸ÇÏÁö ¾Ê´õ¶óµµ ÄÄÆÄÀÏ·¯°¡ ¾Ë¾Æ¼­ Àû´çÇÑ Å¸ÀÔÀ¸·Î ¹Ù²ã ÁÖ´Â °ÍÀÌ´Ù. ¼­·Î ȣȯµÇ´Â ŸÀÔ³¢¸® ¿¬»êÇÒ ¶§³ª ³í¸®ÀûÀÎ ¹®Á¦°¡ ¾øÀ» ¶§ ÄÄÆÄÀÏ·¯´Â ÀÚµ¿À¸·Î º¯È¯ÇÑ´Ù. ´ÙÀ½ ÄÚµå´Â ¾Ï½ÃÀû º¯È¯ÀÌ °¡´ÉÇÑ ÀüÇüÀûÀÎ ¿¹ÀÌ´Ù.

 

short s = 1234;

int i = s;

 

shortÇü º¯¼ö s¸¦ intÇü º¯¼ö i¿¡ ´ëÀÔÇÏ¿´´Ù. ŸÀÔÀÌ ºÒÀÏÄ¡ÇÏÁö¸¸ ÄÄÆÄÀÏ·¯°¡ s¸¦ intÇüÀ¸·Î º¯È¯ÇÏ¿© Á¿캯À» ÀÏÄ¡½ÃŲ ÈÄ ´ëÀÔÇÑ´Ù. short ŸÀÔÀÇ Ç¥Çö ¹üÀ§°¡ int ŸÀÔ¿¡ Æ÷ÇԵǹǷΠ°ªÀÇ ¼Õ½ÇÀÌ ¹ß»ýÇÏÁö ¾Ê¾Æ ¾ÈÀüÇÏ´Ù. s°¡ ¾î¶² °ªÀ» °¡Áö´õ¶óµµ i¿¡ ¹«³­È÷ ´ëÀÔÇÒ ¼ö ÀÖ´Ù.

ÀÛÀº ŸÀÔÀ» Å« ŸÀÔ¿¡ ´ëÀÔÇÒ ¶§´Â Ç×»ó ¾ÈÀüÇϸç ÄÄÆÄÀÏ·¯°¡ ¾Ï½ÃÀûÀ¸·Î ŸÀÔÀ» º¯È¯Çصµ ¹®Á¦°¡ ¾ø´Ù. ¸¶Âù°¡Áö·Î byte´Â short¿¡ ´ëÀ﵃ ¼ö ÀÖÀ¸¸ç int´Â longÀ¸·Î, float´Â double¿¡ ´ëÀԵȴÙ. ´ÙÀ½Àº ¹Ý´ëÀÇ °æ¿ì, Áï Å« ŸÀÔÀ» ÀÛÀº ŸÀÔ¿¡ ´ëÀÔÇÏ´Â °æ¿ì¸¦ º¸ÀÚ.

 

int i = 12345678;

short s = i;

 

Á¤¼öÇüÀÇ Å« ŸÀÔÀ» shortÇüÀÇ ÀÛÀº ŸÀÔ¿¡ ´ëÀÔÇÏ¸é ¿¡·¯ 󸮵ȴÙ. 16ºñÆ® ±æÀÌÀÇ short´Â 32767 ÀÌ»óÀÇ Å« ¼ö¸¦ ±â¾ïÇÒ ¼ö ¾ø¾î 32ºñÆ®ÀÇ int°ªÀ» ¾ÈÀüÇÏ°Ô ´ëÀÔ¹ÞÀ» ¼ö ¾ø´Ù. ±×·¸´Ù¸é Å©±â´Â °°°í ºÎÈ£ ¿©ºÎ¸¸ ´Ù¸¥ °æ¿ì´Â ¾î¶»°Ô 󸮵ɱî?

 

int i = -1;

uint u = i;

uint u = 2999999999;

int i = u;

 

int¿Í uint ŸÀÔÀ» ¼­·Î ´ëÀÔÇØ º¸¾Ò´Ù. int¿Í uint´Â µÑ ´Ù 32ºñÆ®ÀÌ¸ç ºÎÈ£ ¿©ºÎ¸¸ ´Ù¸£´Ù. Å©±â´Â °°Áö¸¸ ºÎÈ£¿¡ µû¶ó Ç¥Çö °¡´ÉÇÑ ¹üÀ§°¡ ´Þ¶ó ¾Ï½ÃÀû º¯È¯À» Çã¿ëÇÏÁö ¾Ê´Â´Ù. uint´Â ºÎÈ£°¡ ¾ø¾î -1À» ÀúÀåÇÒ ¼ö ¾øÀ¸¸ç int´Â ºÎÈ£´Â ÀÖÁö¸¸ 20¾ïÀÌ ³Ñ´Â Å« ¼ö¸¦ ÀúÀåÇÒ ¼ö ¾ø´Ù.

byte¿Í sbyte, short¿Í ushort, long°ú ulong°£ÀÇ ´ëÀÔµµ ¸¶Âù°¡Áö ÀÌÀ¯·Î Çã¿ëµÇÁö ¾Ê´Â´Ù. ÇÏÁö¸¸ ´ÙÀ½ °æ¿ì´Â ºÎÈ£ ¿©ºÎ°¡ ´Ù¸£Áö¸¸ ¾Ï½ÃÀû º¯È¯ÀÌ Çã¿ëµÈ´Ù.

 

ushort us = 32000;

int i = us;

 

int´Â ushortÀÇ ¸ðµç °ªÀ» Æ÷ÇÔÇÏ¿© ¾Ï½ÃÀû º¯È¯ÀÌ °¡´ÉÇÏ´Ù. °°Àº ÀÌÀ¯·Î byte´Â short·Î º¯È¯µÉ ¼ö ÀÖ°í uint´Â longÀ¸·Î º¯È¯ÇÒ ¼ö ÀÖ´Ù. Áï ºÎÈ£¾ø´Â ÀÛÀº ŸÀÔÀº ºÎÈ£ÀÖ´Â Å« ŸÀÔ¿¡ ´ëÀ﵃ ¼ö ÀÖ´Ù. ¹Ý´ëÀÇ °æ¿ì´Â ¼º¸³ÇÏÁö ¾Ê´Â´Ù.

 

short s = -1234;

uint u = s;

 

uint°¡ ´õ Å©Áö¸¸ ºÎÈ£°¡ ¾ø¾î À½¼ö¸¦ Ç¥ÇöÇÒ ¼ö ÀÖ´Â short°ªÀ» ´ëÀÔ¹ÞÀ» ¼ö ¾ø´Ù. 8¹ÙÀÌÆ®³ª µÇ´Â ulongµµ ´Ü 1¹ÙÀÌÆ®ÀÇ sbyte¸¦ ´ëÀÔ¹ÞÁö ¸øÇÑ´Ù. Á¦ ¾Æ¹«¸® Å« ŸÀÔÀÌ¶óµµ ¸ðµç °æ¿ì¸¦ Ä¿¹öÇÏÁö ¸øÇÏ¸é ¾ÈÀüÇÏÁö ¾Ê´Ù. ºÎÈ£¿¡ ´ëÇÑ ÀÌ ±ÔÄ¢Àº »ó¼ö¸¦ ´ëÀÔÇÒ ¶§´Â ´Þ¶óÁø´Ù.

 

uint u = 12345678;

 

Á¤¼ö »ó¼ö´Â U, L °°Àº Á¢¹Ì¾î¸¦ ºÙÀÌÁö ¾Ê´Â ÇÑ int ŸÀÔÀÌ´Ù. int »ó¼ö¸¦ uint º¯¼ö¿¡ ´ëÀÔÇßÁö¸¸ ÀÌ ´ëÀÔÀº Ç×»ó ¾ÈÀüÇÏ´Ù. ½ÇÇàÁß¿¡ °ªÀÌ ¹Ù²î´Â º¯¼ö´Â Á¶±ÝÀÌ¶óµµ À§ÇèÇÒ °¡´É¼ºÀÌ ÀÖÀ¸¸é ´ëÀÔÀ» Çã¿ëÇÏÁö ¾ÊÁö¸¸ »ó¼ö´Â ÄÄÆÄÀÏÇÒ ¶§ °ªÀ» ¾Ë ¼ö ÀÖ¾î À¯È¿ÇÑ ´ëÀÔÀÎÁö ÆÇ´ÜÇÒ ¼ö ÀÖ´Ù. À§ ´ëÀÔ¹®ÀÇ 12345678 »ó¼ö´Â uintÀÇ ¹üÀ§ ¾ÈÀ̾ À¯È¿ÇÏ´Ù. ¹°·Ð uint u = -1; Àº ¸í¹éÇÑ ¿¡·¯´Ù.

¾Ï½ÃÀû º¯È¯ ±ÔÄ¢ÀÌ º¹ÀâÇØ º¸ÀÌÁö¸¸ ¾Ë°íº¸¸é »ó½ÄÀûÀÌ´Ù. ¿ÏÀüÈ÷ Æ÷ÇÔµÇ¸é ¾ÈÀüÇÏ°í ±×·¸Áö ¾ÊÀ¸¸é ¾ÈÀüÀ» º¸ÀåÇÒ ¼ö ¾ø´Ù. ±×·¯³ª Á¤¼ö¿Í ½Ç¼ö°£ÀÇ º¯È¯Àº »ó½Ä°ú ´Ù¸£´Ù. µÎ ŸÀÔÀÇ Æ÷¸ËÀº ¿ÏÀüÈ÷ ´Þ¶ó °ªÀÇ Á¤È®µµ¸¦ ÀÒÁö ¾Ê°í º¯È¯ÇÒ ¼ö ¾ø´Ù. ´ÙÀ½ ´ëÀÔ¹®Àº ¿¡·¯·Î 󸮵ȴÙ.

 

double d = 3.14;

int i = d;

 

Á¤¼ö´Â ¼Ò¼öÁ¡ ÀÌÇϸ¦ ±â¾ïÇÒ ¼ö ¾ø¾î ½Ç¼ö¸¦ ´ëÀÔ¹ÞÀ» ¼ö ¾øÀ¸¸ç ¾Ï½ÃÀû º¯È¯ÀÌ Çã¿ëµÇÁö ¾Ê´Â´Ù. ÇÏÁö¸¸ ¹Ý´ëÀÇ °æ¿ì´Â ¾Ï½ÃÀû º¯È¯ÀÌ Çã¿ëµÈ´Ù.

 

int i = 1234567890;

double d = i;

 

doubleÀº Á¤¼öºÎ, ¼Ò¼öºÎ¸¦ ±â¾ïÇÒ ¼ö ÀÖ¾î Á¤¼ö¸¦ ´ëÀÔ¹ÞÀ» ¼ö ÀÖ´Ù. doubleÀÌ intº¸´Ù ´õ Å« ŸÀÔÀ̾ ´ç¿¬ÇÑ °Íó·³ »ý°¢µÇ°ÚÁö¸¸ ´ÙÀ½ ´ëÀÔ¹®Àº »ç½Ç ¹®Á¦°¡ Á» ÀÖ´Ù.

 

long l = 1234567890123456789;

float f = l;

 

longÀº 64ºñÆ®ÀÇ Å« ŸÀÔÀÌ°í float´Â 32ºñÆ®ÀÇ ÀÛÀº ŸÀÔÀÌÁö¸¸ floatÀÇ Ç¥Çö ¹üÀ§°¡ ´õ ³Ð¾î Çã¿ëµÈ´Ù. float¿¡ ÀúÀåµÇ´Â °ªÀº 1.234568E+18Àε¥ Á¤¼ö·Î Ç¥ÇöÇÏÀÚ¸é 1234568000000000000ÀÌ µÈ´Ù. º¯È¯¿¡ ÀÇÇØ Á¤È®µµ°¡ Èñ»ýµÇÁö¸¸ À̶§ÀÇ ¿ÀÂ÷´Â õ¸¸ºÐÀÇ 1·Î °ªÀÇ Å©±â¿¡ ºñÇØ »ó´ëÀûÀ¸·Î ÀÛ´Ù. ½Ç»ýÈ°¿¡¼­µµ ÀÌ Á¤µµ ¿ÀÂ÷´Â ¿ëÀεȴÙ. ¿¹¸¦ µé¾î 100¸¸¿ø Â¥¸® Á¦Ç°À» 10¸¸¿øÀ̳ª õ¸¸¿ø¿¡ ÆȾҴٸé Å«ÀÏ ³ª°ÚÁö¸¸ 123¸¸ 5682¿øÂ¥¸® Á¦Ç°À» 123¸¸¿ø¿¡ ÆÈ¾Ò´Ù¸é º° ¹®Á¦°¡ ¾Æ´Ï´Ù.

µðÁöÅÐ ¼¼°èÀÇ ½Ç¼ö´Â ¿ø·¡ºÎÅÍ ¿ÀÂ÷°¡ ÀÖÀ¸¸ç °³¹ßÀÚ´Â ´ëºÎºÐ ÀÌ »ç½ÇÀ» ¾Ë°í ÀÖ´Ù. ¹®Á¦¸¦ ºÎ°¢½ÃÅ°±â À§ÇØ long°ú float¸¦ ½á¼­ ±×·¸Áö double¸¸ Çصµ ½ÇÁ¦ ¿ÀÂ÷´Â °ÅÀÇ 0ÀÌ¸ç ±â²¯ ³ª ºÁ¾ß 1/¹éÁ¶ Á¤µµ¿¡ ºÒ°úÇÏ´Ù. ÀÌ Á¤µµ Á¤¹ÐµµÀÇ Èñ»ýÀº ÃæºÐÈ÷ °¨¼öÇÒ¸¸ ÇØ ¾Ï½ÃÀû º¯È¯À» Çã¿ëÇÑ´Ù. ¿¬»êÁß¿¡µµ ¾Ï½ÃÀû º¯È¯ÀÌ ¹ß»ýÇÑ´Ù. ŸÀÔÀÌ ´Ù¸¥ º¯¼ö³ª »ó¼ö°¡ ÇÑ ¿¬»ê½Ä¿¡ ÀÖÀ» ¶§ ¾Ï½ÃÀû º¯È¯À¸·Î ¾çÂÊÀÇ Å¸ÀÔÀ» ¸ÂÃá ÈÄ ¿¬»êÇÑ´Ù.

 

int i = 1;

short s = 2;

int j = i + s;

 

int¿Í short¸¦ ´õÇØ int¿¡ ´ëÀÔÇߴµ¥ i + s ¿¬»ê¹®¿¡¼­ s°¡ Àá½Ã intÇüÀÌ µÈ´Ù. ÀÌ·± º¯È¯¿¡ ÀÇÇØ Á¤¼ö¿Í ½Ç¼ö¸¦ °°Àº ¿¬»ê½Ä¿¡ ¼¯¾î »ç¿ëÇصµ ¹®Á¦°¡ ¾ø´Ù. ´ÙÀ½ ¿¬»ê½ÄÀº Ãʺ¸ÀÚ°¡ ÈçÈ÷ ½Ç¼öÇÏ´Â ÄÚµåÀÌ´Ù.

 

short a = 1, b = 2;

short c = a + b;

 

short³¢¸® ´õÇØ shortÇü º¯¼ö¿¡ ´ëÀÔÇßÀ¸´Ï ¹®Á¦¾øÀ» °Í °°Áö¸¸ ¸·»ó ÄÄÆÄÀÏÇØ º¸¸é int¸¦ short·Î ¹Ù²Ü ¼ö ¾ø´Ù´Â ¿¡·¯°¡ ³ªÅ¸³­´Ù. short³ª byte °°Àº ÀÛÀº ŸÀÔÀÌ ¼ö½Ä³»¿¡¼­ »ç¿ëµÇ¸é Ç×»ó int·Î º¯È¯µÈ ÈÄ ¿¬»êµÇ¹Ç·Î a + bÀÇ °á°ú´Â int°¡ µÇ¸ç µû¶ó¼­ shortÇü º¯¼ö c¿¡ ¹Ù·Î ´ëÀÔÇÒ ¼ö ¾ø´Ù. short³¢¸® ´õÇÑ °á°ú°¡ shortÀÇ ¹üÀ§¸¦ ³ÑÀ» ¼öµµ ÀÖ¾î c´Â ¹Ýµå½Ã int·Î ¼±¾ðÇØ¾ß ÇÑ´Ù. ¾Æ´Ï¸é ¿¬»ê °á°ú¸¦ ¸í½ÃÀûÀ¸·Î short·Î ij½ºÆÃÇÒ ¼öµµ ÀÖ´Ù.

 

short a = 1, b = 2;

short c = (short)(a + b);

 

ÀÌ·± ¼º°¡½Å ¹®Á¦°¡ ¸¹±â ¶§¹®¿¡ Á¤¼ö°¡ ÇÊ¿äÇÒ ¶§ °¡±ÞÀûÀÌ¸é ±×³É int·Î ¼±¾ðÇÏ´Â °ÍÀÌ ¼ÓÆíÇÏ´Ù. ¹è¿­³»ÀÇ º¯¼ö°¡ ¾Æ´Ñ ´Üµ¶ º¯¼ö´Â short³ª byte³ª ¾îÂ÷ÇÇ ½ºÅà ÇÑÄ­À» Â÷ÁöÇϱâ´Â ¸¶Âù°¡Áö¶ó ¸Þ¸ð¸®°¡ Àý¾àµÇ´Â °Íµµ ¾Æ´Ï°í 32ºñÆ® ÄÄÇ»ÅÍ´Â ¿¬»ê ´ÜÀ§°¡ 32ºñÆ®¶ó ¼Óµµ´Â ¿ÀÈ÷·Á ´õ ´À·ÁÁø´Ù.