JAVA/포스팅

자바 java.math.BigInteger클래스

짜집퍼박사(짜박) 2023. 11. 16. 00:35

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