그냥 게임개발자
오버플로, 언더플로 본문
오버플로우 흘럼넘친다라는 뜻이다.
컴퓨터에서는 어떤 타입의 허용범위를 넘으면 발생하는 에러를 오버플로우라고 한다.
예를 들어 signed int는 최대 Max치 허용범위는 2147483647이다.
21억4천7백4십8만3천6백4십7이다.
그렇다면 이 21억4천7백4십8만3천6백4십7을 벗어나는 숫자에 + 1을 하게되면 21억4천7백4십8만3천6백4십8이 아닌
- 21억4천7백4십8만3천6백4십8로 돌아가게 된다.
이를 예측할 수 없는 행동 즉 UB(Unexcpected Behavior)라고도 한다.
간단하게 코드로 봐보자.
#include <iostream>
using namespace std;
int main()
{
int a = 2147483647;
cout << a << '\n';
a++;
cout << a << '\n';
}
결과물도 보자.
음 역시 컴퓨터는 거짓말을 하지 않아.
그러면 언더플로는 뭘까?
오버플로의 반댓말이지 않을까?
말 그대로 Min보다 결과값이 작아지게 되면 언더플로가 발생한다.
음 역시 잘된다.
'C++ 나만의 복습' 카테고리의 다른 글
float, double (0) | 2024.04.04 |
---|---|
long long (0) | 2024.04.04 |
int, 4byte짜리 정수 (1) | 2024.04.04 |
bool, 참과 거짓 (0) | 2024.04.04 |
stoi() (0) | 2024.04.04 |