자바에서 정수를 표현하기 위해서 byte, short, int, long 등 다양한 타입이 지원됩니다.

 

그러나!  long 보다 큰 정수를 표현해야 할 때에는 어떻게 해야 할까요?

 

BigInteger 클래스는 이름 그대로 큰 정수값을 표현할 때 사용됩니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.math.BigInteger;
 
public class BigIntegerTest {
    public static void main(String[] args) {
        System.out.println("정수의 최대값 : " + Long.MAX_VALUE);
        System.out.println("정수의 최소값 : " + Long.MIN_VALUE);
        System.out.println();
 
        BigInteger bigValue1 = new BigInteger("10000000000000000000");
        BigInteger bigValue2 = new BigInteger("-9999999999999999999");
 
        BigInteger addResult = bigValue1.add(bigValue2);
        BigInteger mulRuslt = bigValue1.multiply(bigValue2);
        
        System.out.println("BigInteger 더하기 : " + addResult);
        System.out.println("BigInteger 곱하기 : " + mulRuslt);
    }
}
cs

 

<결과>

정수의 최대값 : 9223372036854775807
정수의 최소값 : -9223372036854775808

 

BigInteger 더하기 : 1
BigInteger 곱하기 : -99999999999999999990000000000000000000 

 

 

우선 정수의 최대값과 최소값을 확인하기 위해서 long 타입의 범위를 출력해 보았습니다.

 

그리고 이 범위를 벗어나는 아주 큰 정수들을 BigInteger 클래스를 사용하여 선언했습니다.

BigInteger  는 BigDecimal 과 마찬가지로 math 패키지에 포함되어 있으며, 일반적인 클래스를 사용하듯이 이용할 수 있습니다.

 

 

여기서 한가지 주의할 점은 생성자의 매개변수를 문자형으로 전달해야 된다는 것입니다.

문자형을 사용하는 이유는 아주 간단합니다. 숫자형으로 표현할 수 있는 범위를 벗어난 값이기 때문입니다!

BigInteger 클래스를 사용하는 이유이기도 하죠.

 

 

연산이 수행된 결과값이 보이시나요?

BigInteger 클래스에는 add, multiply 이외에 다양한 메소드들이 제공되고 있으니 정수 연산에 유용하게 이용할 수 있습니다.

 

 

 

'IT > Java' 카테고리의 다른 글

자바 랜덤함수(Java Random)  (0) 2015.03.24
자바 문자열 비교 - equals(), equalsIgnoreCase()  (0) 2015.03.17
BigDecimal 클래스 - 오차없이 실수 표현하기  (0) 2015.03.13
자바 버전 확인  (0) 2015.03.09
자바 환경변수 설정  (0) 2015.03.02

Posted by maze1008
,