2013-10-10 46 views
-4

執行計算說我有下列兩個變量:使用權力

CLOCK_RATE_A =2; 
CPU_TIME_A = 10; 

將下面的代碼片允許我來執行計算10 *(2 * 10^9),並將結果指定到新的變量?

CLOCK_CYCLES_A = CPU_TIME_A * (CLOCK_RATE_A * pow(10, 9)); 
+3

你試過了嗎?你爲什麼不呢? – Maroun

+0

是的,它會... –

+1

在編寫代碼時,你的大寫鎖定有什麼問題嗎? –

回答

0

這取決於你的數據類型。如果pow而不是標準C庫pow函數並且定義爲返回int,而您的其他類型是int那麼您將在某些平臺上溢出int類型。

(注意pow(10, 9)是非常接近int極限的32位的平臺上。)

然而,如果pow是按照標準實施(即返回一個浮點型),則表達式

CPU_TIME_A * (CLOCK_RATE_A * pow(10, 9)) 

將在浮點計算,你應該設置CLOCK_CYCLES_A成爲double類型,或者轉換爲64位整數,如果你的平臺和編譯器有一個。