编程论坛
注册
登录
编程论坛
→
C++教室
如何判断两个整型数相乘是否发生溢出
紫凤双飞
发布于 2011-04-05 21:36, 3806 次点击
如何判断两个整型数相乘是否发生溢出
求一个判断方法
3 回复
#2
pangding
2011-04-05 23:01
一种简单的思路是像这样:
程序代码:
#include
<limits.h>
if
(INT_MAX / a < b)
{
overflow;
}
else
{
c = a*b;
}
当然有的时候你得看看 a, b 的正负问题。另一个有用的宏是 INT_MIN
[
本帖最后由 pangding 于 2011-4-5 23:03 编辑
]
#3
rjsp
2011-04-06 08:11
或者
c = a*b;
if( a!=0 && c/a!=b ) overflow
#4
紫凤双飞
2011-04-08 21:25
回复 3楼 rjsp
除非c与a,b的类型不同,否则若a*b溢出,则c!=a*b,下面的if判断也就不对啦
1