250x250
250x250
JinSeopKim
Hello World!
JinSeopKim
전체 방문자
오늘
어제
  • 분류 전체보기 (168)
    • Artificial intelligence (14)
      • DeepDiveToAI (3)
      • Pytorch (3)
      • Etc (8)
    • Back-end (19)
      • Spring (10)
      • JPA (9)
    • Language (24)
      • Python (3)
      • Java (11)
      • Swift (10)
    • Math (4)
      • Linear Algebra (4)
    • CodingTest (79)
      • Algolithm (12)
      • Backjoon (25)
      • Programmers (42)
    • Etc (27)
      • Book Review (3)
      • Adsp (6)
      • Life (2)
      • Docker (1)
      • odds and ends (15)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • GitHub

인기 글

태그

  • 개발
  • DP
  • Front-end
  • uArm
  • data
  • ADsP
  • swift
  • 파이썬
  • 머신러닝
  • 브루트포스
  • 구현
  • ios
  • 자바
  • JPA
  • Python
  • 프로그래머스
  • 선형대수
  • JAVA8
  • AI
  • BFS
  • BOJ
  • 알고리즘
  • 개발자
  • certificate
  • 백준
  • 문제풀이
  • 카카오
  • 코딩테스트
  • SpringMVC
  • java

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
JinSeopKim

Hello World!

Java의 BigInteger를 알아보자.
Language/Java

Java의 BigInteger를 알아보자.

2022. 3. 12. 16:38
728x90
728x90

22.03.12 SK ICT 코테를 보고 충격에 빠졌다.. 4문제 중 2솔.. 2번과 4번만 맞추고 떨어진것 같다.. 솔직히 3번은 쉽게 풀수 있겠다고 생각하고 도전했던 DP문제인데, 값이 너무 커질수 밖에 없다고 생각해서 long을 써서 해결하려고 하였는데 결국 실패했다. 근데 1번은 왜 나중에 풀려고 아껴둔거지?(아직도 자신에게 의문)

 

코테가 끝나고, Java의 자료형에 대한 공부를 하다가 BigInteger를 알게 되었다..(좀 더 빨리 알았으면 3번을 금방 풀었을텐데..)

 

 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();

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); // 나눗셈

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

728x90
728x90
저작자표시 비영리

'Language > Java' 카테고리의 다른 글

Java8의 Annotation  (0) 2022.03.08
CompletableFuture로 비동기 프로그래밍 공부하기!  (0) 2022.03.04
자바 쓰레드 Callable과 Future  (0) 2022.03.03
자바 Excuter로 쓰레드 처리하기  (0) 2022.03.03
자바 쓰레드의 기초  (0) 2022.03.03
    'Language/Java' 카테고리의 다른 글
    • Java8의 Annotation
    • CompletableFuture로 비동기 프로그래밍 공부하기!
    • 자바 쓰레드 Callable과 Future
    • 자바 Excuter로 쓰레드 처리하기
    JinSeopKim
    JinSeopKim
    기록📚

    티스토리툴바