如何判断两个内嵌数据(如整型)运算后溢出
问题是这样的:如果有两个整型变量:int a,b;并且赋上了很大值,当a+b时,结果会溢出,那么如何在运行时让程序自己判断这两个数运算后是否结果溢出了呢?具体代码怎么写?或者有什么方法可以通过写代码判断?最好是能写成函数之类的,可以在以后的程序中直接使用,谢谢
加法溢出得负数不会抛出异常,就通过是否负数来判断。
#include<iostream>
#include<limits>
using namespace std;
int main(int argc,char** argv)
{
int a,b;
a=numeric_limits<int>::max();
b=numeric_limits<int>::max();
int c=(a+b);
if(c<0) exit(1);
return 0;
}