SeouliteLab

[Java/자바] BigInteger란? 본문

프로그래밍

[Java/자바] BigInteger란?

Seoulite Lab 2024. 3. 7. 08:47

BigInteger 클래스는 정수형 데이터를 임의의 크기로 표현할 수 있도록 지원하는 클래스입니다. 이 클래스를 사용하여 매우 큰 정수 값을 다룰 수 있습니다. BigInteger 클래스의 범위, 비교, 연산, 그리고 형변환에 대해 알아보겠습니다.

BigInteger의 범위

BigInteger는 정수를 임의의 크기로 표현할 수 있기 때문에 실제로는 제한된 범위가 없습니다. 따라서 매우 큰 정수 값을 다룰 수 있습니다.

BigInteger의 비교

BigInteger 객체끼리의 비교는 compareTo() 메서드를 사용하여 수행됩니다. 이 메서드는 두 BigInteger를 비교하여 더 작으면 음수, 같으면 0, 더 크면 양수를 반환합니다.

BigInteger의 연산

BigInteger는 사칙 연산뿐만 아니라 제곱, 나머지 등의 다양한 연산을 지원합니다. 이러한 연산을 사용하여 매우 큰 정수 값을 계산할 수 있습니다.

BigInteger의 형변환

BigInteger 객체를 기본 정수형(int, long)으로 형변환하거나, 반대로 기본 정수형을 BigInteger 객체로 변환할 수 있습니다. 이를 통해 BigInteger 객체를 다른 데이터 형식과 연동하여 사용할 수 있습니다.

예제

BigInteger의 생성 및 출력

// 사용되는 디렉토리: src/com/example
// 파일명: BigIntegerExample.java

import java.math.BigInteger;

public class BigIntegerExample {
    public static void main(String[] args) {
        BigInteger bigInteger = new BigInteger("123456789012345678901234567890");
        System.out.println("BigInteger value: " + bigInteger);
    }
}

BigInteger의 비교

// 사용되는 디렉토리: src/com/example
// 파일명: BigIntegerComparisonExample.java

import java.math.BigInteger;

public class BigIntegerComparisonExample {
    public static void main(String[] args) {
        BigInteger num1 = new BigInteger("12345678901234567890");
        BigInteger num2 = new BigInteger("98765432109876543210");

        int result = num1.compareTo(num2);
        if (result < 0) {
            System.out.println("num1 is smaller than num2");
        } else if (result > 0) {
            System.out.println("num1 is greater than num2");
        } else {
            System.out.println("num1 is equal to num2");
        }
    }
}

BigInteger의 연산

// 사용되는 디렉토리: src/com/example
// 파일명: BigIntegerOperationExample.java

import

 java.math.BigInteger;

public class BigIntegerOperationExample {
    public static void main(String[] args) {
        BigInteger num1 = new BigInteger("12345678901234567890");
        BigInteger num2 = new BigInteger("98765432109876543210");

        BigInteger sum = num1.add(num2);
        BigInteger product = num1.multiply(num2);

        System.out.println("Sum: " + sum);
        System.out.println("Product: " + product);
    }
}

BigInteger의 형변환

// 사용되는 디렉토리: src/com/example
// 파일명: BigIntegerConversionExample.java

import java.math.BigInteger;

public class BigIntegerConversionExample {
    public static void main(String[] args) {
        int intValue = 1234567890;
        long longValue = 9876543210L;

        BigInteger bigInteger1 = BigInteger.valueOf(intValue);
        BigInteger bigInteger2 = BigInteger.valueOf(longValue);

        System.out.println("BigInteger1: " + bigInteger1);
        System.out.println("BigInteger2: " + bigInteger2);
    }
}