달마루
기획자에서 개발자로
달마루
전체 방문자
오늘
어제
  • 분류 전체보기 (334)
    • 기획 이야기 (3)
    • 개발자로 전향한 이유 (1)
    • Github Address (1)
    • 개발자, 그 여정 (11)
      • 기초특강 (4)
      • 국비학원 선정 (4)
      • BitCamp_수업내용 (1)
      • 학원 프로젝트 후기 (1)
      • 정보처리기사 (1)
      • 개발 이야기 (0)
    • 개념 창고 (126)
      • JAVA (50)
      • CS (1)
      • Database (27)
      • NetWork (2)
      • 자료 구조 (2)
      • React (8)
      • Spring (3)
      • JPA (1)
      • HTML & CSS (18)
      • JS (3)
    • algorithm (186)
      • 백준 (161)
      • 프로그래머스 (23)
    • 사는 이야기 (0)

블로그 메뉴

  • Github
  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • java
  • Scanner
  • SQL고득점Kit
  • math
  • 백준문제풀이
  • BOJ algorithm
  • 알고리즘
  • 백준
  • MySQL
  • 백준알고리즘
  • java algorithm
  • BOJ
  • react
  • 알고리즘풀이
  • 혼공MySQL
  • 혼자공부하는SQL
  • 문제풀이
  • BRONZE
  • Algorithm
  • sql 문제풀이
  • Bronze III
  • HTML
  • Bronze IV
  • programmers
  • select
  • SQL
  • 혼공SQL
  • 프로그래머스
  • Bronze V
  • 자바

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
달마루

기획자에서 개발자로

개념 창고/JAVA

[Java] BigInteger 사용 이유, 형변환, 두 수 비교

2022. 12. 21. 20:43
Type 범위
int -2,147,483,648 ~ 2,147,483,647
long -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

int 와 long의 범위로 감당하기 힘든 경우 사용한다.
BigInteger은 문자열 형태여서 숫자의 범위가 무한하다.

그러나 BigInteger은 문자열이라 사칙연산이 안되기 때문에
BigIntger 내부의 숫자를 계산하기 위해서는 BigIntger 클래스 내부에 있는 메서드를 사용해야 한다.

        BigInteger bigNum1 = new BigInteger("100000000000");
        BigInteger bigNum2 = new BigInteger("1000000000000000");

        System.out.println("덧셈(+) :" + bigNum1.add(bigNum2));
        System.out.println("뺄셈(-) :" + bigNum1.subtract(bigNum2));
        System.out.println("곱셈(*) :" + bigNum1.multiply(bigNum2));
        System.out.println("나눗셈(/) :" + bigNum1.divide(bigNum2));
        System.out.println("나머지(%) :" + bigNum1.remainder(bigNum2));
        
        // 결과
        // 덧셈(+) :1000100000000000
        // 뺄셈(-) :-999900000000000
        // 곱셈(*) :100000000000000000000000000
        // 나눗셈(/) :0
        // 나머지(%) :100000000000

 

BigInteger 형 변환
기본 타입으로 형 변환시 아래와 같이 한다.

        BigInteger bigNum = BigInteger.valueOf(10000);
        //int -> BigIntger
        int int_bigNum = bigNum.intValue(); 
        //BigIntger -> int
        long long_bigNum = bigNum.longValue();
        //BigIntger -> long
        float float_bigNum = bigNum.floatValue();
        //BigIntger -> float
        double double_bigNum = bigNum.doubleValue();
        //BigIntger -> double
        String String_bigNum = bigNum.toString();
        //BigIntger -> String

 

BigInteger 두 수 비교
compareTo 메서드를 사용한다.
맞으면 0 틀리면 -1를 반환한다.

    public static void main(String[] args) {
        BigInteger bigNum1 = new BigInteger("100000000000");
        BigInteger bigNum2 = new BigInteger("1000000000000000");

        int compare = bigNum1.compareTo(bigNum2);
        System.out.println(compare);
저작자표시 비영리 변경금지 (새창열림)

'개념 창고 > JAVA' 카테고리의 다른 글

[Java] Unsigned int 구현 방법  (0) 2024.01.31
자바 메모리 영역(Method, Stack, Heap)  (0) 2023.01.17
[Java] char는 사실 문자가 아닌 정수다.  (0) 2022.12.08
char를 문자열로 변환하는 방법(3가지)  (0) 2022.12.08
[JAVA] 문자열의 위치 찾기 indexOf(), lastlndexOf()  (0) 2022.12.07
    '개념 창고/JAVA' 카테고리의 다른 글
    • [Java] Unsigned int 구현 방법
    • 자바 메모리 영역(Method, Stack, Heap)
    • [Java] char는 사실 문자가 아닌 정수다.
    • char를 문자열로 변환하는 방법(3가지)
    달마루
    달마루
    항상 어제보다 좋은 코드를 지향합니다. https://github.com/LimDongHyun99

    티스토리툴바