小编Joh*_*oss的帖子

3*1000000000作为int溢出,但变量很长.为什么?

我有一个简单的c ++应用程序,执行以下计算

long long calcOne = 3 * 100000000;     // 3e8, essentially
long long calcTwo = 3 * 1000000000;    // 3e9, essentially
long long calcThree = 3 * 10000000000; // 3e10, essentially
Run Code Online (Sandbox Code Playgroud)

如果我写每个计算的结果,我得到以下输出:

calcOne = 300000000
calcTwo = -1294967296
calcThree = 30000000000
Run Code Online (Sandbox Code Playgroud)

那么为什么第二次计算失败呢?据我所知,它在长长型的范围内(calcThree更大......).

我在Windows 10上使用Visual Studio 2015.提前感谢.

c++ long-long

3
推荐指数
1
解决办法
1511
查看次数

标签 统计

c++ ×1

long-long ×1