首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么弄函数判断是否溢出

2013-02-24 
如何弄函数判断是否溢出例如输入的数字超过了int的范围,怎么防止这种输入,或者输入a和bint cca+b但是a+

如何弄函数判断是否溢出
例如输入的数字超过了int的范围,怎么防止这种输入,
或者
输入a和b
int c;
c=a+b;
但是a+b已经超过了int的范围,要怎么判断这个溢出

[解决办法]

引用:
第二个直接用
if(a+b>范围)判断也行吧,那第一种情况呢


if(a+b>UINT_MAX)是不行的,结果永远为假,编译时可能会给你警告。

无符号数应该写成if(a>UINT_MAX-b)或if(a+b<a)

有符号数则写成if( (a>0&&b>0&&a+b<=0) 
[解决办法]
 (a<0&&b<0&&a+b>=0) )。 a,b不同号时肯定不会溢出。

有符号数还可以用位运算,最高两位进位不同,则结果会溢出。

热点排行