以下にリストされている2つの変数があるとします。
CLOCK_RATE_A =2;
CPU_TIME_A = 10;
次のコードでは、計算 10 * (2*10^9) を実行し、結果を新しい変数に割り当てることができますか?
CLOCK_CYCLES_A = CPU_TIME_A * (CLOCK_RATE_A * pow(10, 9));
以下にリストされている2つの変数があるとします。
CLOCK_RATE_A =2;
CPU_TIME_A = 10;
次のコードでは、計算 10 * (2*10^9) を実行し、結果を新しい変数に割り当てることができますか?
CLOCK_CYCLES_A = CPU_TIME_A * (CLOCK_RATE_A * pow(10, 9));
データ型によって異なります。が標準 C ライブラリ関数ではなく、をpow
返すようpow
に定義されていてint
、他の型が である場合、一部のプラットフォームでは型int
がオーバーフローします。int
( 32 ビット プラットフォームpow(10, 9)
の制限に非常に近いことに注意してください。)int
ただし、pow
標準に従って実装されている (つまり、浮動小数点型を返す) 場合、式は
CPU_TIME_A * (CLOCK_RATE_A * pow(10, 9))
浮動小数点で計算されCLOCK_CYCLES_A
、double
型に設定するか、プラットフォームとコンパイラにある場合は 64 ビット整数にキャストする必要があります。