【发布时间】:2020-03-05 10:39:06
【问题描述】:
为什么 990099009900 / 10 在 c++ 中等于 -203843547?
#include <iostream>
using namespace std;
int main()
{
long int n = 990099009900;
cout << n / 10;
}
【问题讨论】:
-
我也没有。这真的是你测试的代码吗?
-
在 Windows 上,
long始终为 32 位。使用long long或int64_t。 -
@idclev463035818 WandBox 使用 g++,其中 x64 上的
long有 64 位。 -
long int被定义为具有 至少 32 位,并且从那时起,只有 -2,147,483,648 到 2,147,483,647 的保证范围(它可能有更多,但只能保证该范围)。990099009900超出该范围。