BigInteger Ŭ·¡½º´Â ¹«Áö¸·ÁöÇÏ°Ô Å« Á¤¼ö¸¦ Ç¥ÇöÇÑ´Ù. int³ª long ŸÀÔµµ ½Ç»ýÈ°¿¡ »ç¿ëÇÏ´Â Á¤¼ö ¹üÀ§¸¦ ÃæºÐÈ÷ Ç¥ÇöÇÒ
¼ö ÀÖÁö¸¸ ±×º¸´Ù ´õ Å« ¼ö°¡ ÇÊ¿äÇÒ ¶§´Â BigInteger °´Ã¼¸¦ »ç¿ëÇÑ´Ù. ¿©·¯ °¡Áö »ý¼ºÀÚ°¡ Á¦°øµÇ´Âµ¥ °¡Àå ¸¹ÀÌ »ç¿ëÇÏ´Â »ý¼ºÀÚ Çϳª¸¸ º¸ÀÚ.
BigInteger(String val, [int radix])
ù ¹ø° Àμö·Î ÀúÀåÇÏ°íÀÚ ÇÏ´Â Á¤¼ö°ªÀ» ´ãÀº ¹®ÀÚ¿À» Àü´ÞÇÑ´Ù. ¸®ÅÍ·²·Î´Â
Å« Á¤¼ö¸¦ Ç¥ÇöÇÒ ¼ö ¾ø¾î ¹®ÀÚ¿ ÇüÅ·Π±â¼úÇÑ´Ù. µÎ ¹ø° Àμö´Â Áø¹ýÀ» ÁöÁ¤Ç쵂 »ý·«Çϸé 10Áø¼ö·Î Çؼ®ÇÑ´Ù. ¹®ÀÚ¿ ¾È¿¡´Â Áø¹ý¿¡ ¸Â´Â ¹®ÀÚ¸¸ ÀÖ¾î¾ß Çϸç
±×·¸Áö ¾ÊÀ¸¸é ¿¹¿Ü¸¦ ´øÁø´Ù. ¿¹¸¦ µé¾î 10Áø¹ýÀ̶ó¸é 0 ~ 9 »çÀÌÀÇ ¾Æ¶óºñ¾Æ ¼ýÀÚ¸¸ ÀÖ¾î¾ß ÇÏ¸ç ±âÈ£´Â +, - ºÎÈ£¸¸
Çã¶ôµÈ´Ù.
ÀÌ·¸°Ô »ý¼ºµÈ Á¤¼ö °´Ã¼´Â ±âº» ¼öÄ¡Çü ŸÀÔ°ú °ÅÀÇ À¯»çÇÏ°Ô »ç¿ëµÇ¸ç ¼öÄ¡ ¿¬»êÀ» ´ëºÎºÐ Áö¿øÇÑ´Ù. ±×·¯³ª ÀÚ¹ÙÀÇ ¿¬»êÀÚ´Â ±âº»Çü¸¸ Áö¿øÇÏ¸ç °´Ã¼¿¡´Â Á÷Á¢ »ç¿ëÇÒ ¼ö ¾ø¾î ¸Þ¼µå¸¦ ÅëÇØ ¿¬»êÇÑ´Ù.
BigInteger add(BigInteger val)
BigInteger subtract(BigInteger val)
BigInteger multiply(BigInteger val)
BigInteger divide(BigInteger val)
BigInteger remainder(BigInteger val)
°¢°¢ +, -, *, /, % ¿¬»êÀÚ¿¡ ÇØ´çÇÏ´Â µ¿ÀÛÀ» ¼öÇàÇÑ´Ù. ¶ÇÇÑ Math Ŭ·¡½º¿¡ Á¤ÀÇµÈ ´ëºÎºÐÀÇ ¼öÇÐ ¿¬»êµµ Áö¿øÇϸç À߸ø
»ç¿ëÇßÀ» ¶§ ¿¹¿Ü¸¦ ´øÁö´Â ¹æ½Äµµ ±âº»Çü°ú À¯»çÇÏ´Ù. ´ÙÀ½Àº ¼öÇÐ ¿¬»ê ¸Þ¼µåÀÇ ÀϺÎÀÌ´Ù.
BigInteger abs()
BigInteger pow(int exponent)
BigInteger max(BigInteger val)
BigInteger min(BigInteger val)
Àý´ë°ª, °Åµì½Â, ÃÖ´ë, ÃÖ¼Ò°ªÀ» ±¸ÇÏ´Â ¸Þ¼µåÀÌ´Ù. ¿¬»êÀÚ¸¦ »ç¿ëÇÑ Á÷°üÀûÀÎ ±¸¹®À» ¾µ
¼ö ¾ø°í ¸ðµç ¿¬»êÀ» ÀÚü ¸Þ¼µå·Î ó¸®ÇÑ´Ù´Â ¸é¿¡¼ ±âº»Çüº¸´Ù ºÒÆíÇÏ´Ù. ´ÙÀ½ ¿¹Á¦´Â BigIntegerÀÇ °£´ÜÇÑ »ç¿ë¿¹ÀÌ´Ù.
biginteger |
|
import java.math.*; class JavaTest { public
static void main(String[] args) { BigInteger
a = new BigInteger("123456789098765432101234567890"); System.out.println(a); BigInteger
b = new BigInteger("111111111111111111111111111111"); BigInteger
c = a.add(b); System.out.println(c); } } |
|
½ÇÇà°á°ú |
123456789098765432101234567890 234567900209876543212345679001 |
10ÀÇ 29½Â¿¡ ÇØ´çÇÏ´Â
¾öû³ª°Ô Å« Á¤¼ö¸¦ »ý¼ºÇÑ ÈÄ Á¦´ë·Î ´ëÀԵǾú´ÂÁö Ãâ·ÂÇß´Ù. ±æ´Ù¶õ ¼ýÀÚ¿©¼ °¨ÀÌ Àß ¾È¿À°ÚÁö¸¸ ¸»·Î
Ç¥ÇöÇÏÀÚ¸é 10¾ïÇØÀ̸ç ÇÑ ´ÜÀ§·Î´Â 10¾çÀ̶ó°í ÇÑ´Ù. ´ëºÎºÐÀÇ »ç¶÷Àº µé¾îº» Àûµµ ¾øÀ»ÅÙµ¥ µ¿¾çÀÇ ¼ýÀÚ´Â 10ÀÇ 4½Â ´ÜÀ§·Î ¸¸¾ïÁ¶°æÇØÀھ籸°£Á¤Àç±Ø µîÀ¸·Î À̸§À» ºÙÀ̸ç 10ÀÇ 64½ÂÀ» ºÒ°¡»çÀÇ, 10ÀÇ 68½ÂÀ»
¹«·®´ë¼ö¶ó°í ºÎ¸¥´Ù.
µ¿¾çÀÇ ¼ö ü°è´Â ¹«·®´ë¼ö°¡ ³¡ÀÌ¸ç ºÒ±³¿¡¼ 1°ÌÀ» 10ÀÇ 72½ÂÀ¸·Î Á¤ÀÇÇϴµ¥ ¹«ÇÑ´ë¿Í µ¿±ÞÀÌ´Ù. ¼¾ç¿¡¼´Â 10ÀÇ 100½ÂÀ»
±¸°ñÀ̶ó°í Çϴµ¥ ¹«Áö¸·ÁöÇÏ°Ô Å« ¼ö¶ó´Â »ó¡ÀûÀÎ ÀǹÌÀÌ´Ù. BigInteger´Â »ç¶÷ÀÌ À̸§À» ºÙ¿©
³õÀº ¼öº¸´Ù ´õ Å« ¼ö±îÁö Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. »ý¼ºÀÚ·Î ¼ýÀÚ¸¦ ´ãÀº ¹®ÀÚ¿À» Àü´ÞÇߴµ¥ ¿Ö³ÄÇÏ¸é ´ÙÀ½°ú
°°ÀÌ Ç¥±âÇÒ ¼ö ¾ø±â ¶§¹®ÀÌ´Ù.
new BigInteger(123456789098765432101234567890)
ÀÚ¹Ù ¾ð¾î¿¡¼ ÃÖ´ë ±æÀÌÀÇ ¸®ÅÍ·²ÀÌ long ŸÀÔÀ̸ç 64ºñÆ® ÀÌ»óÀÇ ¼öÄ¡ ¸®ÅÍ·²À» ÀνÄÇÏÁö ¸øÇØ ¾î¿ ¼ö ¾øÀÌ ¼ýÀÚ¿À» µû¿ÈÇ¥¾È¿¡ °¨½Î Ç¥ÇöÇÑ´Ù. °°Àº Å©±â·Î ¸ðµç ÀÚ¸®¼ö°¡ 1ÀÎ
b °´Ã¼¸¦ ¸¸µé°í a¿Í ´õÇÑ ÈÄ c¿¡ ´ëÀÔÇØ
º¸¾Ò´Ù. aÀÇ °¢ ÀÚ¸®¼ö°¡ ¸ðµÎ 1¾¿ Áõ°¡ÇÑ´Ù. BigInteger °´Ã¼³¢¸® ´õÇÒ ¶§ add ¸Þ¼µå¸¦ È£ÃâÇߴµ¥
¼öÄ¡¶ó°í Çؼ ´ÙÀ½°ú °°ÀÌ ¿¬»êÇÒ ¼ö´Â ¾ø´Ù.
BigInteger c = a + b;
+ ¿¬»êÀÚ´Â ±âº»Çü¸¸ ÀνÄÇÒ »Ó °´Ã¼´Â Áö¿øÇÏÁö ¾ÊÀ¸¸ç Àڹٴ ŸÀÔ¿¡
µû¶ó ¿¬»êÀÚÀÇ ±â´ÉÀ» Á¤ÀÇÇÏ´Â ¿¬»êÀÚ ¿À¹ö·Îµù ±â´Éµµ ¾ø´Ù. ±×·¡¼
add¶ó´Â º°µµÀÇ ¸Þ¼µå°¡ Á¦°øµÇ¸ç ³ª¸ÓÁö ±âº» ¿¬»êµµ ¸ðµÎ ¸Þ¼µå·Î ¼öÇàÇÑ´Ù. °´Ã¼ÀÌ´Ù
º¸´Ï »ý¼ºÀ̳ª ¿¬»ê½ÄÀÇ Ç¥Çö ¹æ¹ýÀÌ Á» ´Ù¸¦ »Ó ¿¬»êÀÇ ³í¸®ÀûÀÎ µ¿ÀÛÀº ±âº»Çü°ú µ¿ÀÏÇÏ´Ù.
BigInteger°¡ Ç¥ÇöÇÒ ¼ö ÀÖ´Â °ªÀÇ ¹üÀ§´Â 2ÀÇ 20¾ï½ÂÀε¥ ¼öÀÇ Å©±â·Î´Â °¨È÷ »ó»óµµ ÇÒ ¼ö ¾ø´Â Áö°æÀÌ´Ù. ¸Þ¸ð¸®¾çÀ¸·Î Ç¥ÇöÇϸé 250M ¹ÙÀÌÆ®ÀÇ ±æÀÌ¿¡ ÇØ´çÇÏ´Ï 8¹ÙÀÌÆ®ÀÇ long ŸÀÔ µûÀ§´Â °¨È÷ ºñ±³ ´ë»óÁ¶Â÷ µÇÁö ¸øÇÑ´Ù.
ÀÌ·¸°Ô ¹«Áö¸·ÁöÇÏ°Ô Å« ¼ö´Â µµ´ëü ¾ðÁ¦ »ç¿ëÇÒ±î? »ç½Ç long ŸÀÔÀÇ ÃÖ´ë°ªÀÎ 900°æµµ ½Ç»ýÈ°¿¡¼ °ÅÀÇ »ç¿ëÇÏÁö ¾Ê´Â
¼ýÀÚ´Ù. õ¹®ÇÐÀ̳ª Åë°èÇÐ Á¤µµµÇ¸é ÀÌÁ¤µµ Å« ¼ö°¡ ÇÊ¿äÇÏ°ÚÁö¸¸
doubleÇüÀ̸é ÃæºÐÇÏ´Ù. ±×º¸´Ù ´õ Å« ¼ö´Â ÆÐÅÏ ºÐ¼®À̳ª ¾Ïȣȿ¡ »ç¿ëµÈ´Ù. Å°°¡ 256ºñÆ® Á¤µµ µÇ¸é ¼ö°¡ ¾öû³ª°Ô Ä¿Áö±â ¶§¹®¿¡ ±âº» ŸÀÔÀ¸·Î´Â
Ç¥Çö ¹× ¿¬»êÀÌ ºÒ°¡´ÉÇÏ´Ù.