Int to Float to Int转换精度损失

时间:2013-03-10 06:16:20

标签: c++ assembly floating-point

最近,我编写了一个小程序,并使用2个不同版本的mingw32(在Windows8上)编译它。令人惊讶的是,我得到了两个不同的结果。我试图解除它,但没有发现什么特别的。谁能帮助我?谢谢。

exe文件: https://www.dropbox.com/s/69sq1ttjgwv1qm3/asm.7z

结果:720720(gcc版本4.5.2),720719(gcc版本4.7.0)

编译器标志:-lstdc ++ -static

代码剪切如下:

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int a = 55440, b = 13;
    a *= pow(b, 1);
    cout << a << endl;
    return 0;
}

装配输出(4.5.2):

http://pastebin.com/EJAkVAaH

装配输出(4.7.0):

http://pastebin.com/kzbbFGs6

0 个答案:

没有答案