为什么MinGW和GCC为这个简单的程序提供了不同的输出?

时间:2016-03-11 10:26:10

标签: c++ gcc runtime-error mingw

在使用C ++的新生CSc大学课程中,我们遇到了将十进制数转换为二进制数的问题。

我的代码是:

#include <iostream>
#include <math.h>
using namespace std;
int main()
{   
    int x, bin=0, i=0;
    cin>>x;
    while(x!=0)
    {
        bin+=(x%2)*pow(10,i++);
        x/=2;
    }
    cout<<bin;
    return 0;
}

当我使用gcc 5.2.1在没有额外构建标志的情况下在Kubuntu 15.10上构建它时,我得到了10100的预期输出20

然而,当我在Windows 10上使用CodeBlocks 13.12打包MinGW时构建它时,我得到10098的输出为20的相同输入。

与正确答案的这种奇怪偏差随着MinGW中最终输出的位数而增加。可能出现什么问题,为什么MinGW输出给出了错误的答案?

0 个答案:

没有答案