为什么C++程序在太大时返回代码而不是答案?

Why does C++ programs return a code instead of the answer when it's too big?

本文关键字:代码 答案 返回 程序 C++ 为什么      更新时间:2023-10-16

我正在编写一个C++程序来计算一个数学问题。我先写:

int x = 1
int y = 1
int z = 1
int answer = x * y * z
cout << answer << endl;

当我构建并运行它时,它会打印 1。但是当我这样做时:

int x = 1234;
int y = 5243;
int z = 1142;
int answer =  x * y * z;
cout << answer << endl ;

它打印出一个答案,这是7388502404,但一个我不明白的代码:"-1201352188"。 你能解释一下为什么会发生这段代码,以及如何解决代码吗?

它不是代码,而是存储在整数结果中的值。您遇到整数溢出。int只能保存特定大小的值,当您超过该大小时,您最终会得到不是您想要的位模式,但仍然可以存储在int中。有时这些位模式是负数的整数表示,这就是这里发生的事情。

您可以考虑使用较大的整数类型,例如longlong long

相关文章: