[C++] 오버플로우(Overflow) 체크방법
- Language & Solution/C++
- 2018. 11. 20. 05:15
반응형
int check_overflow(int num1, int num2)
{
// 여기가 핵심. num1 + num2 > INT_MAX를 변형한 것
// 위 식을 그대로 쓸 경우 num1 + num2 자체에서 오버플로우가 일어나 계산이 안 됨
if (num1 > INT_MAX - num2)
return -1;
else
return num1 + num2;
}
int main()
{
int num1 = 2147483627;
int num2 = 20;
int result = check_overflow(num1, num2);
if (result == -1)
std::cout << "Integer overflow occurred";
else
std::cout << result;
}
반응형
'Language & Solution > C++' 카테고리의 다른 글
| [C++] 문자열(string)에서 double형으로 (0) | 2018.11.20 |
|---|---|
| [C++] 문자열 뒤집기 (0) | 2018.11.20 |
| [C++] 문자열 앞뒤 공백 제거 방법 ( Boost 라이브러리 안 씀 ) (0) | 2018.11.20 |
| [C++] namespace, FQN(fully Qualified Name) (0) | 2018.06.24 |
| [C++] constexpr (0) | 2018.06.24 |
이 글을 공유하기






