整型数相加的溢出
当正溢出时,返回TMax,负溢出时,返回TMin。这种运算常用在执行数字信号处理的程序中。
程序代码
int saturating_add(int x,int y);void main()
{static int x,y;static int i=1,sum;x=(i<<15)-1;y=(i<<15)-1;sum=saturating_add(x,y);while(1);
}
int saturating_add(int x,int y)函数
int saturating_add(int x,int y)
{int TMax,TMin;int z,i=1;z=x+y;TMax=0-(i<<15);TMin=(i<<15)-1;if(x<0&&y<0&&z>0)return TMin;else if(x>0&&y>0&&z<0)return TMax;else return z;
}
运行结果(正溢出)