반응형
<Hist>
[2023-09-05] 생성
<Note>
Java에서 자주 사용하는 BigInteger()를 사용하는 방법에 대해 작성되었습니다.
BigInteger는 Code 내의 주석에서 설명되는 것과 같이,
int나 long 등의 정수형 변수의 범위를 넘어서는 더욱 큰 숫자를 연산하기 위해 사용할 수 있습니다.
int나 long은 범위를 넘어서는 수를 대입하면 Error를 유발합니다. (Overflow 발생)
하지만, BigInteger는 아래와 같은 이유로 사용이 신중하게 고려되어야 합니다.
1) 표현되는 자릿수에 비례하여 점유하는 메모리의 크기가 증가함
2) 기존 변수들에 비해 점유하는 메모리 용량이 큼
(Digit 19의 long은 8 Byte이나,
Dight 20의 BigDecimal은 80 Byte로 10배 정도 차이)
Type | Range | Memory (JVM 64-bit) | Area |
int | -2,147,483,648 ~ 2,147,483,647 |
4 Byte | Stack (기본형) |
long | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
8 Byte | Stack (기본형) |
BigInteger | 제한 없음 | Min : 70 Byte ~ 1 Digit : 70 Byte 20 Digit : 80 Byte 100 Digit : 112 Byte |
Heap (기본형) |
Table 01. 참조 - https://stackoverflow.com/questions/15301249/how-much-space-does-biginteger-use
3) 상대적으로 조회 속도가 느림 (Python)
자세한 방법이 궁금하시다면, 문의 주세요.
최대한 함께 알아보겠습니다.
<Code>
<Result>
반응형
LIST
'Programming > JAVA' 카테고리의 다른 글
JAVA_04-03_BigInteger_03_Fibonacci 예제 (0) | 2023.09.07 |
---|---|
JAVA_04-02_BigInteger_02_Scanner (0) | 2023.09.06 |
JAVA_03-03_Print (0) | 2023.09.04 |
JAVA_03-02_Operator (연산자) (0) | 2023.01.19 |
JAVA_03-01_Datatype (데이터 유형) (0) | 2023.01.19 |