c++ - 为什么 long int 不是 100% 准确?

标签 c++ linux long-integer

我在 Linux 上尝试 time -p 命令,我写了一些代码来浪费 CPU 周期:

#include <iostream>

using namespace std;

int main() {
 long int c;

 long int ss;

 for(c = 0;c < 10000000;c++) {
  ss += c*c;
 }

 cout<<ss<<endl;

 return 0;
}

然而,在运行几次后我发现了一些有趣的事情:

me@octopus:~/Desktop> ./test
1292030741067648912
me@octopus:~/Desktop> ./test
1292030742538841328
me@octopus:~/Desktop> ./test
1292030742228685600
me@octopus:~/Desktop> ./test
1292030740402651312
me@octopus:~/Desktop> ./test
1292030740207543344
me@octopus:~/Desktop> ./test
1292030740346553856
me@octopus:~/Desktop> ./test
1292030741629275040
me@octopus:~/Desktop> ./test
1292030740397307072
me@octopus:~/Desktop> ./test
1292030742928964784
me@octopus:~/Desktop> ./test
1292030741780094096

我不仅没有像预期的那样每次都得到相同的号码,而且我什至一次都没有得到相同的号码。这是怎么回事?

最佳答案

您尚未将 ss 初始化为零,因此其初始值未定义。你需要:

long int ss = 0;

关于c++ - 为什么 long int 不是 100% 准确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12668081/

相关文章:

python - 在 Windows 平台上创建的 LP 可以在 Linux 平台上运行吗?

java - Java中从long到float的信息丢失

c++ - 如何在没有 2^n if 语句的情况下启动具有许多 bool 参数的函数模板

c++ - 故障管道三个命令 "dmesg|sort|more"c++

c++ - 具有构造函数是否合适?

java - java中打印时 'long'类型的数字改变了它的值

python - 如何在Python中输入Googol?

c++ - 未处理的异常 - 如何解决它,C++

linux - gdb 反向步进 - Linux 不支持?

python - optuna 的段错误(核心转储)