자바/유용한 클래스들

유용한 클래스(6) - BigInteger class

백_곰 2021. 12. 31. 11:22

1. java.math.BigInteger class

- 정수형 타입인 long으로 표현할 수 있는 값은 10진수로 19자리 정도인데, 이것보다 더 큰 계산을

한다면 BigInteger를 사용하는 것이 좋다.

 

- BigInteger class는 int 배열을 사용해서 값을 다루기 때문에, long 타입보다는 성능면에서는 떨어진다.

 

 

- BigInteger class는 다음과 같은 변수를 가진다.

(1) final int signum

: 부호 1(양수), 0, -1(음수) 셋 중의 하나의 값을 가진다.

 

(2) final int[] mag

: 값(magnitude)

 

( 위 코드에서 볼 수 있듯이, String처럼 불변이며 '2의 보수'의 형태를 취하고 있다. 즉, 같은 mag 값이더라도

signum은 다르다는 것이다. )

 

 

 

- BigInteger의 생성 방법은 여러가지 있는데, 문자열로 숫자를 표현하는 것이 일반적이다.

아래의 코드를 보자.

 

 

 

- BigInteger 또한 비트 연산 메서드를 사용하는 것이 좋은데, 아래의 코드를 보고 이해하자.

 

 

 

 

1-1. BigInteger class을 이해하기 위한 예제(1)

: factorial을 BigInteger로 바꾼 예제이다.