私はプログラムを持っていて、その中に Q=pow(2.0,32) を入れました Windows7の32ビットシステムを搭載したコンピューターでこのプログラムを実行すると動作しますが、64ビットシステムを搭載したコンピューターにコピーするとビット システム windowsxp Q=0 が表示されます。何が問題なのですか? Q は long long int です
質問する
168 次
2 に答える
1
それが0だとどうしてわかるの?Q
のようなものを使用して印刷している場合はprintf("%lld\n", Q);
、Microsoft の C ランタイム ライブラリの欠陥に遭遇している可能性があります。C99 に対する Microsoft のサポートは最小限であり、その形式をサポートしていない可能性があり"%lld"
ます (彼らのコンパイラが許可していることに驚いていますlong long int
)。
の値を出力するだけでなく、0と比較 してみてください。Q
Q
printf("Q = %lld\n", Q);
if (Q == 0) {
puts("Q == 0");
}
else {
puts("Q != 0");
}
サポートされているlong long int
値を出力する方法については、Microsoft のドキュメントを参照してください。
于 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 に答える