정수 타입
❤ 정수 타입
정수 타입은 숫자를 나타내는 타입으로, byte, short, int, long 분류
타입 별로 차지하는 메모리 공간의 크기와 표현할 수 있는 범위
| 타입 | 메모리 | 표현 범위 |
|---|---|---|
| byte | 1byte | -128(-27) ~ 127(27 - 1) |
| short | 2byte | -32,768(-215) ~ 32,767(215 - 1) |
| int | 4byte | -2,147,483,648(-231) ~ 2,147,483,647(231 - 1) |
| long | 8byte | -9,223,372,036,854,775,808(-263) ~ 9,223,372,036,854,775,807(263 - 1) |
1
2
3
4
// 숫자가 길면 언더바로 구분할 수 있음
int intNum = 12_345_678_910;
long longNum = 12_345_678_910L;
long 타입 리터럴의 경우에는 리터럴 뒤에 접미사 L또는 l 로 구분
보통 숫자 1과 혼동을 방지하기 위해 대문자 L을 붙임
🧡 정수형의 오버플로우와 언더플로우
타입이 표현할 수 있는 값의 범위를 넘어서는 것을 오버플로우,언더플로우라고 함
오버플로우,언더플로우가 발생했다고 해서 에러가 발생하는 것은 아님 → 예상한 결과가 아님
최대값 +1 → 최소값
최소값-1 → 최대값
- 오버플로우
- 자료형이 표현할 수 있는 범위 중 최대값 이상의 값을 표현한 경우 발생.
- 최대값을 넘어가면 해당 데이터 타입의 최소값으로 값이 순환
- 예 : 어떤 값이
byte형이고,byte형의 최대값인 127을 값으로 가지는 경우,
이 값에 1을 더하면 128이 되는 게 아니라, 최소값인 -128이 됨
- 언더플로우
- 자료형이 표현할 수 있는 범위 중 최소값 이하의 값을 표현한 경우 발생
- 최소값을 넘어가면 해당 데이터 타입의 최대값으로 값이 순환
- 예 : 어떤 값이
byte형이고,byte형의 최소값인 -128을 값으로 가지는 경우,
이 값에 1을 빼면 -129가 되는 게 아니라, 최대값인 127이 됨
This post is licensed under CC BY 4.0 by the author.