본문 바로가기
Java

[Java] BigInteger 클래스 사용

by 알래스카비버 2021. 5. 27.
반응형

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

반응형

댓글