# BigInteger Class

# BigInteger Class의 범위는?

Big Integer의 클래스의 범위는 무한대다. 예전에 자료구조 수업을 처음 들을 때 첫 과제가 BigInt라는 자료형을 만들어보는 문제였는데, 그게 사실 Java에서 지원해주는 api인지 몰랐다. 원리는 String형으로 어떻게 처리를 해주기 때문에 무한이 될 수 있다. 하지만, 문자열에 대한 연산은 속도가 느릴 수 있기 때문에 왠만하면 사용을 안하는 것을 권장한다.

# BigInteger의 생성과 변환

BigInteger bigInt = new BigInteger("100");

int bigIntToInteger = bigInt.intValue();
long bigIntToLong = bigInt.longValue();
float bigIntToFloat = bigInt.floatValue();
double bigIntToDouble = bigInt.doubleValue(); 
String bigIntToString = bigInt.toString();
1
2
3
4
5
6
7

BigInteger의 생성자에 문자열을 넣어주면 된다. 문자열로 숫자를 이렇게 넣어주면 생성할 수 있다.

그리고 사용한 BigInteger는 정수형, 실수형 그리고 문자열로 변환이 가능하다.

# BigInteger의 연산

BigInteger bigIntA = new BigInteger("12");
BigInteger bigIntB = new BigInteger("10");
bigIntA.add(bigIntB); // 덧셈
bigIntA.subtract(bigIntB); // 뺄셈
bigIntA.multiply(bigIntB); // 곱셈
bigIntA.divide(bigIntB); // 나눗셈
bigIntA.remainder(bigIntB); // 나눗셈
1
2
3
4
5
6
7

사칙연산과 mod연산까지 수행할 수 있다. 사용하는 방법은 위와 같으며 메소드의 결과값이 연산의 결과가 된다.