被10个人混淆,然后除以10

时间:2016-06-22 15:08:35

标签: c++

我有点困惑,因为当我将一个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 ;
}

任何帮助解释,请

1 个答案:

答案 0 :(得分:2)

32位int的范围是-(1 << 32)(1 << 32) - 1

当15亿乘以10时,它超过int的上限(大约21亿)并溢出到不同的数字,当它除以10时,你会得到结果[新]数字除以十。