BigIntegerEx01-BigInteger 클래스

CODEDRAGON Development/Java

반응형

   

   

BigInteger 클래스

   

큰 정수를 문자열로 표현한 이유는 숫자로 표현이 불가능하기 때문입니다.

기본 자료형의 범위를 넘어서는 크기의 정수는 숫자로 표현 불가능합니다.

   

   

File Info

package com.mathex;

BigIntegerEx01.java

   

   

출력결과

   

   

표현범위를 벗어났으므로 기본자료형으로 표현 못하여 ERROR발생

BigInteger bigValue3=new BigInteger(100000000000000000000);

The literal 100000000000000000000 of type int is out of range

  

   

   

소스코드

ackage com.mathex;

import java.math.*;

class BigIntegerEx01
{
        public static void main(String[] args)
        {
                //long
자료형이 표현할 있는 최대값과 최소값 출력
                System.out.println("
최대 정수: " + Long.MAX_VALUE); //최대 정수: 9223372036854775807
                System.out.println("
최소 정수: " + Long.MIN_VALUE); //최소 정수: -9223372036854775808
                
                //9223372036854775807
                //100000000000000000000
표현할수 없는 것이기 때문에 문자열로 표현하였습니다.
                BigInteger bigValue1=new BigInteger("10000000000000000000000");
                BigInteger bigValue2=new BigInteger("-9999999999999999999999");
                
//              BigInteger bigValue3=new BigInteger(100000000000000000000); //ERROR-The literal 100000000000000000000 of type int is out of range 
                //
매소드를 통해 값을 전달하면 매개변수가 메모리상에 표현되어야 되는데 시스템상으로 표현이 되지 못했으므로 전달할 수가 없습니다.
                //
자바가 기본자료형으로 100000000000000000000 표현해서 BigInter 매개변수로 전달해야 되지만 전달되지 않습니다.
                
//              BigInteger addResult=bigValue1.add(bigValue1);
//              BigInteger mulResult=bigValue1.multiply(bigValue1);
//              
//              System.out.println("
수의 덧셈결과: "+addResult);
//              System.out.println("
수의 곱셈결과: "+mulResult);
                
                BigInteger addResult=bigValue1.add(bigValue2);
                BigInteger mulResult=bigValue1.multiply(bigValue2);
                
                System.out.println("
수의 덧셈결과: "+addResult);
                System.out.println("
수의 곱셈결과: "+mulResult);
        }
}


반응형