티스토리 뷰
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include <stdio.h>
#include <limits.h> // SHRT_MAX, USHRT_MAX를 사용하기 위함
int main(void)
{
short s_money = SHRT_MAX; // 최대값으로 초기화 (32767)
unsigned short u_money = USHRT_MAX; // 최대값으로 초기화 (65535)
s_money = s_money + 1; // 오버 플로우를 발생시킴
printf("s_money = %d\n", s_money);
u_money = u_money + 1; // 오버 플로우를 발생시킴
printf("u_money = %u\n", u_money);
return 0;
}
|
cs |
- 결과
- 한마디
<limits.h>는 정수형의 한계를 알려주는 헤더파일이다.
SHRT_MAX, USHRT_MAX는 각각 short, unsigned의 최대값을 나타내는 기호상수이다.
최대값(상한치)의 반대인 최소값(하한치)는 SHRT_MIN, USHRT_MIN으로 나타낸다.
short 자료형의 최대값은 32767,
unsigned short 자료형의 최대값은 65535이다.
unsigned는 0부터 양수값까지를 나타낸다.
short의 최대값인 32767에서 1을 더해 최대값을 초과하게 되면32768이 아닌 -32768이 출력되며이는 (-32768, -32767, -32766, .... , 32766, 32767) 과 같이
short 자료형의 범위를 일렬 구조로 생각한다면
32767 다음은 맨 앞인 -32768로 출력된다고 생각하면 쉽다.
unsigned short의 경우 65535를 초과하면 0이 된다.
변수가 나타낼 수 있는 범위를 넘는 숫자를 저장하려고 할 때 발생하는
위와 같은 경우를 오버플로우 라고 한다.
반대의 개념으로 언더플로우가 있다.
반응형
'Programming Language > C basic' 카테고리의 다른 글
[C언어] CHAPTER 04 변수와 자료형 / 아스키코드 (0) | 2021.03.24 |
---|---|
[C언어] CHAPTER 04 변수와 자료형 / 기호상수 선언 (0) | 2021.03.24 |
[C언어] CHAPTER 03 C 프로그램 구성요소 / Programming 06 / 달에서의 몸무게 계산 (0) | 2021.03.23 |
[C언어] CHAPTER 03 C 프로그램 구성요소 / Programming 05 / 다항식의 값 계산 (0) | 2021.03.23 |
[C언어] CHAPTER 03 C 프로그램 구성요소 / Programming 04 / 섭씨 온도로 환산하기 (0) | 2021.03.23 |
댓글
반응형
Recent Post.
Recent Reply.
- Thanks for comming.
- 오늘은
- 명이 방문했어요
- 어제는
- 명이 방문했어요