C ++ long long int overflow / underflow

时间:2017-04-08 10:15:30

标签: c++ c math overflow underflow

我正在制作一个小程序来解决基本的数学运算(*/+-)而我正在使用{{ 1}}(64位数字)所以我可以用大数字进行数学运算。

但是有一个问题。我可以检查操作数是否超过或超出限制(使用long long intLONG_LONG_MAX)。 但是当我(例如)乘以两个非常大的数字(导致LONG_LONG_MIN溢出)时,long long int检查不起作用。相反,结果是-4。

C / C ++中是否有机会检查?例如,有些尝试捕获构造?

1 个答案:

答案 0 :(得分:1)

有关  x = a * b;

if (a != 0 && x / a != b) {
// overflow handling
}

请参阅此帖子了解更多详情

multiplication of large numbers, how to catch overflow