-1

いくつかの値を計算する C プログラムを書かなければなりません。実際には問題はないはずで、私のプログラムは小さな数値に対しては動作しますが、たとえば 2^32 のような大きな数値を出力しようとするとうまくいきません。整数変数が 2^32 ビットの大きさであることはわかっていますが、long 変数または unsigned long 変数を使用することはできませんか?

なぜ

unsigned long erg = pow(2,32);
printf(%u, erg);

うまくいかない?

4

2 に答える 2

2

unsigned long を出力するための正しい形式は%lu、 ではなく%u

于 2013-03-29T12:47:17.670 に答える
0

この依存関係は、基礎となるアーキテクチャに依存します。32 ビット マシンを使用している場合、2^31 - 1 より大きな整数を生成することはできません。それとは別に、32 ビット マシンでさえ、範囲が -2^31 から2^31 - 1。

于 2013-03-29T12:49:16.883 に答える