불변의 임의 정밀 정수. 모든 연산은 BigInteger가 2의 보완 표기법(Java의 기본 정수 유형과 같은)으로 표현된 것처럼 동작함
Java의 모든 기본 정수 연산자와 java.lang.Math의 모든 관련 메서드에 대한 아날로그를 제공함
또한 모듈러 산술 연산, GCD 계산, 소수 판별법, 소수 생성, 비트 조작 및 몇 가지 기타 연산을 제공함
산술 연산의 의미는 Java™ 언어 사양에 정의된 대로 Java의 정수 산술 연산자의 의미를 정확히 모방함
예를 들어, 0으로 나누면 ArithmeticException이 발생하고 음수를 양수로 나누면 음수(또는 0)의 나머지가 발생함
이 클래스의 모든 메서드 및 생성자는 입력 매개 변수에 대해 null 개체 참조가 전달될 때 NullPointerException을 발생시킴
-2의 Integer.MAX_VALUE 제곱(제외) ~ +2의 Integer.MAX_VALUE 제곱(제외) 범위(즉, -2,147,483,648 ~ 2,147,483,647)의 값을 지원해야 하며 해당 범위를 벗어나는 값을 지원할 수도 있음
BigInteger 생성자 또는 메서드가 지원되는 범위를 벗어나는 값을 생성하면 ArithmeticException이 발생함
가능한 소수 값의 범위는 제한적이며 지원되는 BigInteger의 전체 양수 범위보다 작을 수 있음
범위는 1부터 2의 5억 제곱 이상이어야 함
ex)
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BigInteger a = sc.nextBigInteger();
BigInteger b = sc.nextBigInteger();
sc.close();
BigInteger sum;
sum = a.add(b); //add(BigInteger val): 값이 (this + val 즉, 여기선 a + b)인 BigInterger를 반환함
System.out.println(sum);
}
}