#include<iostream>
using namespace std;
int main(){
int x = 1967513926;
int y = 1540383426;
cout<<x+y;
return 0;
}
以上两个整数之和是 3507897352 < 2^32。那么为什么答案是错误的呢? 请帮忙...
最佳答案
int
是有符号类型,所以它是 maximum是 2^31 - 1 = 2147483647,而不是 2^32 - 1。所以在这种情况下你确实会溢出。
关于c++ - 添加两个正整数给出负答案。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30934035/