可能重复:
在C/C++中检测整数溢出的最佳方法
如果我有一个表达式x + y(在C或C++中)where x和y都是uint64_t导致整数溢出的类型,我如何检测它(进位),位置溢出多少,而不是另一个变量,然后计算余数?
Him*_*ury 10
假设您使用的是无符号整数,则余数将已存储在x + y的总和中.无符号整数溢出导致环绕(未定义有符号整数溢出).请参阅评论中Pascal的标准参考.
溢出只能是1位.如果添加2个64位数,则进位位不能超过1,因此您只需要检测溢出条件.
对于如何检测溢出,有一个关于该主题的先前问题:检测整数溢出的最佳方法.