5.3 오버플로우와 언더플로우
1. 계기판이 돌아가는 현상 🚗
자동차 주행 거리계가 99999 다음에는 다시 00000이 되죠?
변수도 담을 수 있는 최대값을 넘어가면 최소값으로 돌아가 버립니다.
이것을 오버플로우(Overflow)라고 합니다.
byte b = 127; // byte의 최대값
b++; // 128이 되는 게 아니라,
System.out.println(b); // -128 (최소값)이 됩니다!
2. 반대 현상 (언더플로우)
반대로 최소값에서 더 줄어들으면 최대값으로 돌아갑니다. 이것을 언더플로우(Underflow)라고 합니다.
byte b = -128; // byte의 최소값
b--;
System.out.println(b); // 127 (최대값)
해결책: 값이 넘칠 것 같으면 처음부터 더 큰 그릇(
long)을 쓰세요.
서브목차