java.math.BigInteger 클래스는 임의의 정수를 정확하게 표현할 수 있는 클래스입니다. 이 클래스는 정수 값이 int나 long의 범위를 벗어나는 경우에 사용됩니다. BigInteger 클래스는 불변(immutable)하며, 다양한 정수 연산을 지원합니다.
java.math.BigInteger 클래스의 주요 메서드
1. add(BigInteger val) 및 subtract(BigInteger val) 메서드
두 BigInteger 객체를 더하거나 빼는 연산을 수행합니다.
BigInteger num1 = new BigInteger("12345678901234567890");
BigInteger num2 = new BigInteger("98765432109876543210");
BigInteger sum = num1.add(num2);
BigInteger difference = num1.subtract(num2);
2. multiply(BigInteger val) 및 divide(BigInteger val) 메서드
두 BigInteger 객체를 곱하거나 나누는 연산을 수행합니다.
BigInteger num1 = new BigInteger("12345678901234567890");
BigInteger num2 = new BigInteger("98765432109876543210");
BigInteger product = num1.multiply(num2);
BigInteger quotient = num1.divide(num2);
3. pow(int exponent) 메서드
BigInteger 객체를 주어진 지수로 제곱합니다.
BigInteger base = new BigInteger("2");
int exponent = 10;
BigInteger result = base.pow(exponent); // 2^10
4. compareTo(BigInteger val) 메서드
두 BigInteger 객체를 비교합니다. 0이면 같고, 양수면 크고, 음수면 작습니다.
BigInteger num1 = new BigInteger("12345678901234567890");
BigInteger num2 = new BigInteger("98765432109876543210");
int comparisonResult = num1.compareTo(num2);
5. equals(Object x) 메서드
두 BigInteger 객체가 동일한 값을 가지면 true를 반환합니다.
BigInteger num1 = new BigInteger("12345678901234567890");
BigInteger num2 = new BigInteger("12345678901234567890");
boolean isEqual = num1.equals(num2);
6. toString() 메서드
BigInteger 객체를 문자열로 변환합니다.
BigInteger num = new BigInteger("12345678901234567890");
String numAsString = num.toString();
7. valueOf(long val) 메서드
long 타입의 값을 BigInteger 객체로 변환합니다.
long longValue = 1234567890123456789L;
BigInteger bigIntegerValue = BigInteger.valueOf(longValue);
예제
import java.math.BigInteger;
public class BigIntegerExample {
public static void main(String[] args) {
BigInteger num1 = new BigInteger("12345678901234567890");
BigInteger num2 = new BigInteger("98765432109876543210");
// 덧셈과 뺄셈
BigInteger sum = num1.add(num2);
BigInteger difference = num1.subtract(num2);
// 곱셈과 나눗셈
BigInteger product = num1.multiply(num2);
BigInteger quotient = num1.divide(num2);
// 제곱
BigInteger base = new BigInteger("2");
int exponent = 10;
BigInteger result = base.pow(exponent);
// 비교
int comparisonResult = num1.compareTo(num2);
// 동일성 검사
boolean isEqual = num1.equals(num2);
// 문자열로 변환
String num1AsString = num1.toString();
// long 값으로 변환
long longValue = num1.longValue();
}
}
이 클래스는 대규모 정수 연산이나 정밀한 정수 값이 필요한 경우에 사용됩니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 날짜와 시간 (0) | 2023.11.16 |
---|---|
자바 java.math.BigDecimal클래스 (0) | 2023.11.16 |
자바 java.util.StringTokenizer클래스 (0) | 2023.11.16 |
자바 java.util.Scanner클래스 (0) | 2023.11.15 |
자바 java.util.regex패키지 (0) | 2023.11.15 |