티스토리 뷰
728x90
반응형
- 무한대 크기 지원: long 범위(±9경)를 넘는 정수도 표현 가능
- 이론적으로 메모리가 허용하는 한 무한대에 가까운 숫자까지 표현
- 불변 객체(Immutable): 기존 값을 바꾸지 않고 항상 새로운 객체를 반환
- 정수 연산 지원: 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지, 거듭제곱, GCD 등 다양한 연산 지원
- java.math 패키지에 포함
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
BigInteger big1 = new BigInteger("9223372036854775808"); // long 범위 넘어선 수
BigInteger big2 = new BigInteger("100000000000000000000");
// 덧셈
BigInteger sum = big1.add(big2);
// 곱셈
BigInteger product = big1.multiply(big2);
System.out.println("합계: " + sum);
System.out.println("곱: " + product);
}
}
자주 사용하는 메서드
add() | 덧셈 |
subtract() | 뺄셈 |
multiply() | 곱셈 |
divide() | 나눗셈 (몫) |
mod() | 나머지 |
pow(n) | 거듭제곱 |
gcd() | 최대공약수 |
compareTo() | 크기 비교 |
equals() | 값 비교 |
isProbablePrime(certainty) | 소수 판별 |
- BigInteger는 연산할 때 기존 객체를 수정하지 않고 항상 새로운 객체를 반환함
- 숫자를 문자열로 넣어야 하므로 "1000000"처럼 문자열 형태로 생성해야 함
- 기본 연산자(+, -, * 등)는 사용할 수 없고, 메서드로 처리해야 함
728x90
반응형
'Java' 카테고리의 다른 글
[Java] Jackson readValue(), convertValue() (0) | 2025.04.20 |
---|---|
[Java] Jackson Streaming API, TreeModel (0) | 2025.04.19 |
[Java] BigDecimal (0) | 2025.04.19 |
[Java] DIP (Dependency Inversion Principle) (0) | 2025.03.03 |
[Java] Bounded WildCard (1) | 2025.03.03 |
반응형
300x250