본문 바로가기

C++ 기초 1

[C++] 오버플로우 (overflow)

오버플로우

   int형 변수를 4바이트로 처리하는 경우, -2,147,483,648 ~ 2,147,483,647 (-2^32 ~ 2^31-1)까지의 정수를 표현할 수 있다. 따라서 이 범위를 벗어나는 정수가 데이터로 입력되면 이를 처리할 수 없는 상태가 발생하게 되는데 이러한 상태를 오버플로우(overflow)라고 한다. 자세한 내용은 아래 예제에서 확인할 수 있다.

 

예제
#include <iostream>
using namespace std;
int main()
{
	int x, y;	//4바이트 int형
	x = 2147483648;
	y = 2147483649;
	cout << "Size of an int in C++ : " << sizeof(int) << " byte" << endl; 
	cout << "x= " << x << endl;
	cout << "y= " << y << endl;
	return 0;
}
실행 결과
Size of an int in C++ : 4 byte
x= -2147483648
y= -2147483647
 
  • int형(4바이트)으로 선언한 경우, 취할 수 있는 정수의 최댓값은 2,147,483,647이다. 표현할 수 있는 최댓값보다 큰 정수값이 입력되면 오버플로우가 발생한다.
참고

1. 장인성 외 5인, (초보자도 쉽게 따라 할 수 있는) C++프로그래밍, 광문각, 2017.02.13

'C++ 기초 1' 카테고리의 다른 글

[C++] 단항 연산자  (0) 2024.01.17
[C++] 조건 연산자  (0) 2024.01.16
[C++] 캐스트(cast) 연산자  (0) 2024.01.15
[C++] sizeof 연산자  (1) 2024.01.12
[C++] goto문 설명 및 예제  (1) 2024.01.11