在我的情况下,两个INT_MAX数字的乘积是296447233
,这是不正确的。
long long int product = 0;
product = 2137483647 * 2137483647;
printf("product: %lli\n", product);
我在做什么错了,以及如何纠正呢?
谢谢 !
最佳答案
您的2137483647
都属于int
类型。因此,它们保持该类型并溢出。
将它们设置为long long
:
product = 2137483647LL * 2137483647LL;
或 Actor :
product = (long long)2137483647 * 2137483647;
关于c++ - C/C++中两个INT_MAX numbes的乘积不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9504477/