检查算术运算中的溢出情况
可能的重复:
检测 C/C++ 中整数溢出的最佳方法
如何我们检查加法、乘法或减法等算术运算是否会导致溢出?
Possible Duplicate:
Best way to detect integer overflow in C/C++
how do we check if any arithmetic operation like addition, multiplication or subtraction could result in an overflow?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先检查操作数的大小,然后使用
std::numeric_limits
。例如,对于加法:您无法在事后普遍可靠地检测算术错误,因此您必须在事前进行所有检查。
您可以轻松地将此方法模板化,使其适用于任何数字类型。
Check the size of the operands first, and use
std::numeric_limits
. For example, for addition:You cannot generally and reliably detect arithmetic errors after the fact, so you have to do all the checking before.
You can easily template this approach to make it work with any numeric type.