자바에서 정수를 표현하기 위해서 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 |