큰 수를 조작하는 연습문제를 풀던 중...
long형의 범위가 벗어나 오류가 생겨버렸다!!!!!
헉 long형보다 큰 자료형이 뭐가 있을까... 찾다가 BigInteger 발견!!
1. BigInteger의 정의와 범위
BigInteger에 대해 알아보기 전에 먼저 숫자 자료형의 범위를 복습해보자.
구분 |
자료형 |
크기 |
최소값 |
최대 |
정수 |
byte |
8 비트 |
-128 |
127 |
short |
16 비트 |
-32,768 |
32,767 |
|
int |
32 비트 |
-2,147,483,648 |
2,147,483,647 |
|
long |
64 비트 |
-9,223,372,036,854,775,808 |
9,223,372,036,854,775,807 |
|
부동 소수점 |
float |
32 비트 |
7개의 유효숫자를 가지며, -3.4E+38의 근사값 |
7개의 유효숫자를 가지며, 3.4E+38의 근사값 |
double |
64 비트 |
15개의 유효숫자를 가지며, -1.7E+308의 근사값 |
15개의 유효숫자를 가지며, 1.7E+308의 근사값 |
자 그럼, 이제 내가 궁금한 BigInteger의 범위는?
★ BigInteger의 범위는 "무한대" 이다.
그렇다면, 도대체 BigInteger란 무엇인가?
자바 API에서 보면 이렇게 정의되어 있다.
BigInteger: Immutable arbitrary-precision integers. (불변한 임의의 정말한 정수)
쉽게 말해서 무한대 수 라는 의미이다.
2. BigInteger의 변수와 메소드
BigInteger 클래스의 변수는 세가지가 존재한다.
- ZERO
- ONE
- TEN
다음으로 메소드는 많은 것들이 존재하지만 주요 연산 메소드만 소개하겠다.
(나머지는 자바API 가서 확인!)
- add(Biginteger val) // 더하기
- subtract(Biginteger val) // 빼기
- mutiply(Biginteger val) // 곱하기
- devide(Biginteger val) // 나누기
- equals(Object x) // 값이 같은지 비교
3. BigInteger 사용하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | public void UseBigInteger() { int i = 5; BigInteger bigNum1 = BigInteger.ZERO; // 0 BigInteger bigNum2 = BigInteger.ONE; // 1 BigInteger bigNum3 = BigInteger.TEN; // 10 BigInteger afterBigNum; // 사칙연산 afterBigNum = bigNum1.add(bigNum3); // 더하기 afterBigNum = bigNum3.subtract(bigNum2); // 빼기 afterBigNum = bigNum2.multiply(bigNum3); // 곱하기 afterBigNum = bigNum3.divide(bigNum2); // 나누기 // 변수와 사칙연산 afterBigNum = bigNum1.add(BigInteger.valueOf(i)); // 더하기 afterBigNum = bigNum1.subtract(BigInteger.valueOf(i)); // 빼기 afterBigNum = bigNum1.multiply(BigInteger.valueOf(i)); // 곱하기 afterBigNum = bigNum1.divide(BigInteger.valueOf(i)); // 나누기 } | cs |
출처: JAVA API문서 ( Class java.math.BigInteger )
' └ JAVA' 카테고리의 다른 글
[Spring] 자주 쓰는 스프링(Spring framework) 어노테이션(Annotation) 정리 (0) | 2019.08.02 |
---|---|
[JAVA] Map에 배열/List 넣기 (Object형 사용) (2) | 2017.12.20 |
[Java] 스트림의 개념, 종류/파일 입출력/InputStream/OutputStream/Reader/Writer (6) | 2015.07.28 |
[JAVA] 자바 별찍기 (0) | 2014.07.20 |
[JAVA] 정렬 알고리즘(sorting algorithm) - 버블정렬 (Bubble Sort) (0) | 2014.07.20 |