在C ++中检查乘法的整数溢出
假设我们要在将两个数字A和B相乘后找到结果。我们必须检查相乘后的值是否超过64位整数。如果将100和200相乘,则不会超过;如果将10000000000和-10000000000相乘,则会溢出。
要对此进行检查,我们必须执行一些步骤。这些如下-
步骤-
如果任何一个数字为0,则不会超过
否则,如果两个乘积除以一个等于另一个,则乘积不会超过
对于其他一些情况,它将超过。
示例
#include <iostream>
#include <cmath>
using namespace std;
bool isMulOverflow(long long A, long long B) {
if (A == 0 || B == 0)
return false;
long long result = A * B;
if (A == result / B)
return false;
else
return true;
}
int main() {
long long a = 10000000000 , b = -10000000000;
if(isMulOverflow(a, b)){
cout <<"It will overflow";
}
else{
cout <<"It will not overflow";
}
}输出结果
It will overflow
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语