c++ - 添加两个正整数给出负答案。为什么?

标签 c++

#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/

相关文章:

c++ - 如何在 qmake 项目中使用 Boost 库?

c++ - SQLite - 从源代码构建库或将源代码直接包含到我的项目中

c++ - 为什么这段代码不能编译?

c++ - 复制另一个进程正在使用的文件

c++ - 与 ctors 类 union 的替代方案

c++ - 删除和析构函数同时调用时有什么区别?

c++ - 打开对象的实际类型的正确方法是什么?

c++ - 如何通过cmake同时构建静态库和共享库

c++ - Windows Mobile/C : Wait until variable changes

c++ - 使用 QRegExp 的 Ingore 字符串