我有点困惑,因为当我将一个int变量乘以10然后除以10我认为变量值不应该被改变但我得到一个不同的结果我错过了什么或者我应该知道的东西 这是代码
#include <iostream>
using namespace std;
int main()
{
int intVar = 1500000000; //1,500,000,000
intVar = (intVar * 10) / 10; //result too large
cout << “intVar = “ << intVar << endl; //wrong answer
return 0 ;
}
任何帮助解释,请
答案 0 :(得分:2)
32位int
的范围是-(1 << 32)
到(1 << 32) - 1
。
当15亿乘以10时,它超过int
的上限(大约21亿)并溢出到不同的数字,当它除以10时,你会得到结果[新]数字除以十。