Type | 범위 |
int | -2,147,483,648 ~ 2,147,483,647 |
long | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
int 와 long의 범위로 감당하기 힘든 경우 사용한다.
BigInteger은 문자열 형태여서 숫자의 범위가 무한하다.
그러나 BigInteger은 문자열이라 사칙연산이 안되기 때문에
BigIntger 내부의 숫자를 계산하기 위해서는 BigIntger 클래스 내부에 있는 메서드를 사용해야 한다.
BigInteger bigNum1 = new BigInteger("100000000000");
BigInteger bigNum2 = new BigInteger("1000000000000000");
System.out.println("덧셈(+) :" + bigNum1.add(bigNum2));
System.out.println("뺄셈(-) :" + bigNum1.subtract(bigNum2));
System.out.println("곱셈(*) :" + bigNum1.multiply(bigNum2));
System.out.println("나눗셈(/) :" + bigNum1.divide(bigNum2));
System.out.println("나머지(%) :" + bigNum1.remainder(bigNum2));
// 결과
// 덧셈(+) :1000100000000000
// 뺄셈(-) :-999900000000000
// 곱셈(*) :100000000000000000000000000
// 나눗셈(/) :0
// 나머지(%) :100000000000
BigInteger 형 변환
기본 타입으로 형 변환시 아래와 같이 한다.
BigInteger bigNum = BigInteger.valueOf(10000);
//int -> BigIntger
int int_bigNum = bigNum.intValue();
//BigIntger -> int
long long_bigNum = bigNum.longValue();
//BigIntger -> long
float float_bigNum = bigNum.floatValue();
//BigIntger -> float
double double_bigNum = bigNum.doubleValue();
//BigIntger -> double
String String_bigNum = bigNum.toString();
//BigIntger -> String
BigInteger 두 수 비교
compareTo 메서드를 사용한다.
맞으면 0 틀리면 -1를 반환한다.
public static void main(String[] args) {
BigInteger bigNum1 = new BigInteger("100000000000");
BigInteger bigNum2 = new BigInteger("1000000000000000");
int compare = bigNum1.compareTo(bigNum2);
System.out.println(compare);
'개념 창고 > JAVA' 카테고리의 다른 글
[Java] Unsigned int 구현 방법 (0) | 2024.01.31 |
---|---|
자바 메모리 영역(Method, Stack, Heap) (0) | 2023.01.17 |
[Java] char는 사실 문자가 아닌 정수다. (0) | 2022.12.08 |
char를 문자열로 변환하는 방법(3가지) (0) | 2022.12.08 |
[JAVA] 문자열의 위치 찾기 indexOf(), lastlndexOf() (0) | 2022.12.07 |