[Java] 정수 - int / long / short (백준 11382번)

Jina·2023년 7월 12일
0

Java

목록 보기
3/13

정말 간단한 문제이지만 런타임에러가 났다. Intellij에서 출력이 정확히 되는데 대체 뭐가 문제인지 몰랐다.

결론은 int가 아니라 long 타입을 써야했기 때문이었다!
입력받는 수가 10의 12승까지 가능했으므로

이참에 java의 '정수' 타입을 정리해보자.


💡 int

  • 크기 : 32 bit
  • 표현 가능 범위
    -(2^31) ~ (2^31-1)
    -2,147,483,648 ~ 2,147,483,647

즉 10의 거듭제곱은 10의 9승(1,000,000,000)(=10억) 까지만 가능 하다.

따라서 앞의 문제에서는 10의 12승을 저장하려 했으니 런타임 에러가 발생한 것이다!
int 타입의 저장공간을 벗어나는지 확인해서 long 타입을 쓰자!

💡long

  • 크기 : 64 bit

    10의 9승을 초과할 때는 Long을 쓰자

💡 short

반대로 더 작은 저장공간으로 충분하다면, short 타입을 사용할 수도 있다.

10의 거듭제곱은 10의 4승까지만 가능(10,000) 하다.

  • 크기 : 16 bit
  • 표현 가능 범위
    -32,768 ~ 32,767
    -(2^15) ~ (2^15-1)

0개의 댓글

관련 채용 정보