0

我有一个程序,我在里面放了 Q=pow(2.0,32) 当我在一台有 32 位 windows7 系统的计算机上运行这个程序时,它会工作,但是当我把它复制到一台有 64-位系统windowsxp它会给我Q=0 是什么问题?Q 是 long long int

4

2 回答 2

1

你怎么知道Q0?

如果您使用类似的东西打印它printf("%lld\n", Q);,很可能您遇到了 Microsoft 的 C 运行时库的缺陷。Microsoft 对 C99 的支持很少,而且很可能他们不支持这种"%lld"格式(我很惊讶他们的编译器允许long long int)。

除了打印 的值之外,尝试与 0进行比较QQ

printf("Q = %lld\n", Q);
if (Q == 0) {
    puts("Q == 0");
}
else {
    puts("Q != 0");
}

并查阅 Microsoft 的文档以了解他们支持的打印long long int值的方式。

于 2013-01-21T18:47:15.593 回答
0
    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    #include "highgui.h"
    int main()
    {
    long long int Q;
    Q=pow(2.0,32);
    printf("%lld\n",Q);
    printf("%lld\n",LONG_LONG_MAX); return 0; 
    }
于 2013-01-22T09:55:50.193 回答