코딩테스트를 위한 자바 메소드 정리(4) - BigInteger

Jae·2023년 7월 14일
0

BigInteger

  • 말 그대로 큰 정수를 다루기 위해 등장한 클래스. 우리는 정수를 int, long 기본 자료형으로 표현할 수 있지만 이는 표현할 수 있는 값의 크기에 한계가 있다. 이를 해결하기 위해 BigInteger 클래스를 사용한다. 내장 클래스가 아니므로 import 해와야 함
    ➡️ import java.math.BigInteger

BigInteger(String val)

  • 가장 자주 쓰이는 생성자. long형을 벗어나는 범위의 값을 표현해야 하기 때문에 String으로 받는다.
Big Integer big number = newBigInteger("19837645292337406");

BigInteger 계산

  • BigInteger.add
BigInteger bigNumber1 = new BigInteger("100000");
BigInteger bigNumber2 = new BigInteger("10000");

System.out.println(bigNumber1.add(bigNumber2);  // 110000
		
  • BigInteger.subtract
BigInteger bigNumber1 = new BigInteger("100000");
BigInteger bigNumber2 = new BigInteger("10000");

System.out.println(bigNumber1.subtract(bigNumber2);  // 99000
		

*BigInteger.multiply

BigInteger bigNumber1 = new BigInteger("100000");
BigInteger bigNumber2 = new BigInteger("10000");

System.out.println(bigNumber1.multiply(bigNumber2);  // 1000000000
		
  • BigInteger.divide
BigInteger bigNumber1 = new BigInteger("100000");
BigInteger bigNumber2 = new BigInteger("10000");

System.out.println(bigNumber1.divide(bigNumber2);  // 10
  • BigInteger.remainder
BigInteger bigNumber1 = new BigInteger("100000");
BigInteger bigNumber2 = new BigInteger("10000");

System.out.println(bigNumber1.remainder(bigNumber2);  // 0

BigInteger 형 변환

  • Int -> BigInteger
BigInteger bigNumber = BigInteger.valueOf(100000); 
  • BigInteger -> Int
int intbigNum = bigNumber.intValue(); 
  • BigInteger -> long
long longbigNum = bigNumber.longValue(); 
  • BigInteger -> float
float floatbigNum = bigNumber.floatValue();
  • BigInteger -> double
double doublebigNum = bigNumber.doubleValue();
  • BigInteger -> String

 String StringbigNum = bigNumber.toString();
 

BigInteger 두 수 비교


BigInteger bigNumber1 = new BigInteger("100");
BigInteger bigNumber2 = new BigInteger("10000");
		
// 두 수가 같으면 0, 왼쪽이 크면 1, 오른쪽이 크면  -1
int compare = bigNumber1.compareTo(bigNumber2);
System.out.println(compare);    //-1
profile
Back-end Developer

0개의 댓글