반응형
정수형의 오버플로우와 언더플로우는 순환된 값을 출력한다.
우리는 이전에 각 자료형의 데이터 표현 범위(최소값, 최대값)을 배웠습니다. 이렇듯 각 자료형에는 데이터 표현 범위가 존재하는데 자료형에서 저장할 수 있는 최대 범위보다 큰 수를 저장하면 '오버플로우가 발생했다'라고 하고, 반대로 저장할 수 있는 최소 범위보다 작은 수를 저장하면 '언더플로우가 발생했다.'라고 합니다. 그리고 이런 오버플로우와 언더플로우가 발생했을 때 다음 그림처럼 값이 순환됩니다.
4행에서 정수형인 char형은 -128(최소값) ~ 127(최대값)의 데이터 표현 범위를 갖습니다. 변수 num1은 최소값 -128보다 작은 값인 -129를 저장하기 때문에 -1만큼의 언더플로우를 발생합니다.
6행에서 변수 num2는 최대값 127보다 큰 값인 128을 저장하기 때문에 +1만큼의 오버플로우가 발생합니다.
8행에서 최소값 -128보다 -1만큼 언더플로우가 발생해서 최대값 127이 출력됩니다.
10행에서 최대값 127보다 +1만큼 오버플로우가 발생해서 최소값 -128이 출력됩니다.
12행에서 변수 num1은 최소값 -128보다 작은 값인 -130을 저장하기 때문에 -2만큼의 언더플로우가 발생합니다.
14행에서 변수 num2는 최대값 127보다 큰 값인 129를 저장하기 때문에 +2만큼의 오버플로우가 발생합니다.
16행에서 최소값 -128보다 -2만큼의 언더플로우가 발생해서 126이 출력됩니다.
18행에서 최대값 127보다 +2만큼의 오버플로우가 발생해서 -127이 출력됩니다.
반응형
'프로그래밍언어 > C언어' 카테고리의 다른 글
자료형이란 무엇인가 - 실수형 데이터 표현 범위를 나타내는 라이브러리 (0) | 2021.11.14 |
---|---|
자료형이란 무엇인가 - 실수형 (0) | 2021.11.06 |
자료형이란 무엇인가 - 정수형은 int형을 선호한다. (0) | 2021.10.16 |
자료형이란 무엇인가 - unsigned 자료형 (0) | 2021.10.15 |
자료형이란 무엇인가 - 시스템 라이브러리 (0) | 2021.10.13 |
댓글