假设两个int类型的变量x和y,且x,y都小于2的32次方。如果x+y产生溢出,则sum=x+y-2的32次方。则可以推出sum-x=y-2的32次方。所以sum-x<0,同理sum-y<0。所以只要sum<x&&sum<y,则不会产生溢出现象。
溢出检测函数:
int smashing(unsigned int i, unsigned int j)
{
int sum = 0;
sum = (int) (x + y - pow(2, 32));
if(sum < x && sum < y){
return 1;
}
return 0;
}