【发布时间】:2014-04-10 12:42:11
【问题描述】:
当我尝试添加两个长数字时,它会给我减去结果:
#include<iostream>
using namespace std;
int main ()
{
int a=1825228665;
int b=1452556585;
cout<<a+b;
return 0;
}
这给了我:
-1017182046
【问题讨论】:
-
你试过用
unsigned int代替吗? -
整数溢出,超过整数的最大值(特定于您的编译器/操作系统)
-
整数常量对于“long”类型来说太大了
-
@PanagiotisKanavos 无符号整数可以正常工作。结果约为 32 亿,完全在无符号 32 位整数的范围内。
-
@JoachimPileborg 我不认为这个问题与特定值有关。
ints 很小,很容易出现溢出错误。此外,int不保证是 32 位的。该标准规定了最小尺寸:int 为 16 位,long 为 32 位
标签: c++