BigInteger는 int와 long이 표현하는 범위보다 더 큰 범위의 숫자를 저장할 수 있습니다.
new BigInteger("54321") 처럼 생성자에 문자열로 된 숫자를 전달하여 BigInteger를 생성 및 초기화.add(), multiply() 등의 함수를 이용하여 BigInteger 끼리 연산을 할 수 있고, 결과는 BigInteger로 리턴.import java.math.BigInteger;
public class Example {
public static void main(String[] args) {
BigInteger n1 = new BigInteger("54321");
BigInteger n2 = new BigInteger("12345");
System.out.println("n1 + n2 = " + n1.add(n2));
System.out.println("n1 - n2 = " + n1.subtract(n2));
System.out.println("n1 * n2 = " + n1.multiply(n2));
System.out.println("n1 / n2 = " + n1.divide(n2));
System.out.println("n1 % n2 = " + n1.remainder(n2));
}
}
n1 + n2 = 66666
n1 - n2 = 41976
n1 * n2 = 670592745
n1 / n2 = 4
n1 % n2 = 4941
BigInteger는 아래와 같이 int, long, double 등의 기본 타입으로 변환할 수 있습니다.
import java.math.BigInteger;
public class Example {
public static void main(String[] args) {
BigInteger n = new BigInteger("54321");
int i = n.intValue();
long l = n.longValue();
float f = n.floatValue();
double d = n.doubleValue();
String s = n.toString();
}
}
BigInteger 객체끼리 크기 비교를 할 때 compareTo()를 사용할 수 있습니다.
n1.compareTo(n2)는 1, 0, -1을 리턴할 수 있으며 각각 아래와 같은 의미가 됩니다.
import java.math.BigInteger;
public class Example {
public static void main(String[] args) {
BigInteger n1 = new BigInteger("54321");
BigInteger n2 = new BigInteger("12345");
BigInteger n3 = new BigInteger("12345");
System.out.println("n1.compareTo(n2) = " + n1.compareTo(n2));
System.out.println("n2.compareTo(n1) = " + n2.compareTo(n1));
System.out.println("n2.compareTo(n3) = " + n2.compareTo(n3));
}
}
n1.compareTo(n2) = 1
n2.compareTo(n1) = -1
n2.compareTo(n3) = 0