반응형
BigInteger
자바의 정수를 표현하기 위한 자료형은 int, long 등이 있다.
자료형 | 범위 |
int | -2147483648 ~ 2147483647 |
long | -9223372036854775808 ~ 9223372036854775807 |
저 범위를 넘을 때가 있을 것이다. 그럴 때 BigInteger를 사용하면 좋을 것이다.
BigInteger의 범위는 무한하다고 한다.
Import
import java.math.BigInteger;
생성
BigInteger num1 = new BigInteger("10000000000000000000"); // 10000000000000000000
BigInteger num2 = new BigInteger("1010", 2); // 10
BigInteger num3 = new BigInteger(3, new Random()); // 0 ~ (2numBits - 1);
Field
System.out.println(BigInteger.ZERO); // 0
System.out.println(BigInteger.ONE); // 1
System.out.println(BigInteger.TEN); // 10
Method
사칙연산
BigInteger num1 = new BigInteger("10");
BigInteger num2 = new BigInteger("7");
System.out.println(num1 + " + " + num2 + " = " + num1.add(num2)); // 17
System.out.println(num1 + " - " + num2 + " = " + num1.subtract(num2)); // 3
System.out.println(num1 + " * " + num2 + " = " + num1.multiply(num2)); // 70
System.out.println(num1 + " / " + num2 + " = " + num1.divide(num2)); // 1
System.out.println(num1 + " % " + num2 + " = " + num1.remainder(num2)); // 3
형 변환
BigInteger num = new BigInteger("10");
int int_num = num.intValue(); // int
long long_num = num.longValue(); // long
float float_num = num.floatValue(); // float
double double_num = num.doubleValue(); // double
String str_num1 = num.toString(); // 문자열
String str_num2 = num.toString(2); // 2진수 문자열
abs() : 절댓값
BigInteger num = new BigInteger("-222");
System.out.println(num.abs()); // 222
max(BigInteger val) : 최댓값
min(BigInteger val) : 최솟값
BigInteger num1 = new BigInteger("12");
BigInteger num2 = new BigInteger("9");
System.out.println(num1.max(num2)); // 12
System.out.println(num1.min(num2)); // 9
equals(Object x) : 값이 같으면 true, 다르면 false
BigInteger num1 = new BigInteger("9");
BigInteger num2 = new BigInteger("-222");
BigInteger num3 = new BigInteger("9");
System.out.println(num1.equals(num2)); // false
System.out.println(num1.equals(num3)); // true
compareTo(BigInteger val) : val 보다 작으면 -1, 같으면 0, 크면 1
BigInteger num1 = new BigInteger("9");
BigInteger num2 = new BigInteger("12");
BigInteger num3 = new BigInteger("9");
BigInteger num4 = new BigInteger("-22");
System.out.println(num1.compareTo(num2)); // -1
System.out.println(num1.compareTo(num3)); // 0
System.out.println(num1.compareTo(num4)); // 1
gcd(BigInteger val) : 최대공약수
BigInteger num1 = new BigInteger("12");
BigInteger num2 = new BigInteger("9");
System.out.println(num1.gcd(num2)); // 3
pow(int exponent) : 제곱
BigInteger num = new BigInteger("12");
System.out.println(num.pow(2)); // 144
negate() : 부정
BigInteger num1 = new BigInteger("12");
BigInteger num2 = new BigInteger("-222");
System.out.println(num1.negate()); // -12
System.out.println(num2.negate()); // 222
참고
https://docs.oracle.com/javase/8/docs/api/
Pakages : java.math
Classes : BigInteger
반응형
'Java' 카테고리의 다른 글
이클립스 디버깅 값 중간에 끊김 (0) | 2023.04.22 |
---|---|
이클립스 Ctrl+F 찾기 배경 설정 (0) | 2023.01.04 |
[Java] 표준국어대사전 오픈 API 사용하기 - 2(파싱) (0) | 2021.04.22 |
[Java] 표준국어대사전 오픈 API 사용하기 - 1(호출) (0) | 2021.04.15 |
[Java] Thread를 이용한 타이머 + GUI (1) | 2021.04.01 |
댓글