搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 如何判断两个整型数相乘是否发生溢出
标题:
如何判断两个整型数相乘是否发生溢出
只看楼主
紫凤双飞
等 级:
论坛游民
帖 子:76
专家分:61
注 册:2011-3-26
结帖率:
75%
楼主
已结贴
√
问题点数:10 回复次数:3
如何判断两个整型数相乘是否发生溢出
如何判断两个整型数相乘是否发生溢出
求一个判断方法
搜索更多相关主题的帖子:
如何
2011-04-05 21:36
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
2
楼
得分:10
一种简单的思路是像这样:
程序代码:
#include
<limits.h>
if
(INT_MAX / a < b) { overflow; }
else
{ c = a*b; }
当然有的时候你得看看 a, b 的正负问题。另一个有用的宏是 INT_MIN
[
本帖最后由 pangding 于 2011-4-5 23:03 编辑
]
2011-04-05 23:01
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
3
楼
得分:0
或者
c = a*b;
if( a!=0 && c/a!=b ) overflow
2011-04-06 08:11
紫凤双飞
等 级:
论坛游民
帖 子:76
专家分:61
注 册:2011-3-26
第
4
楼
得分:0
回复 3楼 rjsp
除非c与a,b的类型不同,否则若a*b溢出,则c!=a*b,下面的if判断也就不对啦
2011-04-08 21:25
4
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-335722-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.124791 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved