如何判断数值溢出

binbinqq86 2015-06-08 08:07:38
我写了一个计算器,定义的是long类型的变量,但是在计算结果的时候怎么判断结果是否溢出呢?
...全文
812 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2015-06-09
  • 打赏
  • 举报
回复
long a; long b; long c = a + b; if (c < a) // overflowed
小白求指教 2015-06-08
  • 打赏
  • 举报
回复
楼主需要把这些东西转换为二进制然后根据结果判断结果和2个数的符号进行判断,或者通过符号位进位状态标识符CF 和 数值部分的最高位的进位标识符DF同时为1或0时,运算结果没有溢出,否则溢出,就是一个异或的关系;
wang0635 2015-06-08
  • 打赏
  • 举报
回复
一种情况是,两正数相加,结果是负数,就溢出了。可以通过符号判断。 其余情况类似
mewiteor 2015-06-08
  • 打赏
  • 举报
回复
可以用long long
s597471018 2015-06-08
  • 打赏
  • 举报
回复
能不能进行预防呢
if ( m>0 && n>0 && ( LONG_MAX - m < n ) )
{

//error handling...

return;

}
binbinqq86 2015-06-08
  • 打赏
  • 举报
回复

这样判断不行,谁知道应该怎么做呢?

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧