본문 바로가기

java/변수(variable)와 타입(Type)

정수 타입

 

정수 타입은 숫자를 나타내는 타입으로, 메모리 크기와 표현 가능한 숫자의 범위에 따라 네 가지로 분류된다: byte, short, int, long. 각 타입의 메모리 크기와 표현 범위는 다음과 같다.


정수 타입의 분류

타입메모리 크기표현 범위

byte 1 byte -128 (-2⁷) ~ 127 (2⁷ - 1)
short 2 byte -32,768 (-2¹⁵) ~ 32,767 (2¹⁵ - 1)
int 4 byte -2,147,483,648 (-2³¹) ~ 2,147,483,647 (2³¹ - 1)
long 8 byte -9,223,372,036,854,775,808 (-2⁶³) ~ 9,223,372,036,854,775,807 (2⁶³ - 1)

 

(1byte는 8bit로, 표현범위는 2의 8승이다.)

 


long 타입 사용 시 주의점

long 타입의 숫자는 반드시 값 뒤에 **L**을 붙여야 한다. 이는 숫자 1과 혼동을 방지하기 위해 대문자 L을 사용하는 것이 권장된다.

 

 

long number = 3456789L;

1과 혼돈을 방지하기 위해 대문자L을 쓴다

정수 타입의 사용 예시

타입별 유효한 값의 할당

 

 

타입 범위를 벗어난 값의 할당

 

 

숫자 구분을 위한 언더바 사용

 

 


오버플로우와 언더플로우

 

 

작성한 코드에서 지정한 타입의 값이 그 타입의 표현범위를 넘어서는 경우 발생한다.

이는 에러가 안 나기때문에 더 큰 문제가 된다.

 

  • 오버플로우

자료형이 표현할 수 있는 범위 중 최대값 이상의 값을 표현한 경우로,

표현범위를 넘어가면 앞에서 부터 다시 할당한다.(byte형일때 127부터 ) 

최소값부터 다시 시작한다

 

  • 언더플로우 

자료형이 표현할 수 있는 범위 중 최소값 이하의 값을 표현한 경우로, 

반대로, 표현가능한 부분 맨 오른쪽에서( byte 형일때 -128) 부터 다시 할당한다.

최소값을 넘어가면 다시 최대값부터 시작한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

'java > 변수(variable)와 타입(Type)' 카테고리의 다른 글

논리타입  (0) 2024.04.03
실수 타입  (0) 2024.04.03
타입  (0) 2024.04.03
상수  (0) 2024.04.03
변수  (0) 2024.04.03