2016-11-25 37 views
0

我敢打賭,我想要做的並不是那麼難,但我並不是自己想出來的。如何用C代碼中的整數運算來計算比特率?

我想在不使用浮點數或雙精度的情況下,在C語言代碼中以毫秒爲單位計算每秒字節數。

例如,如果僅使用整數,如果過去1300ms中出現123000個字節,我如何計算每秒字節數?

謝謝

+0

字節*(1000毫秒/秒)/ MS – dbush

+0

'bytes_per_second =(bytes_counted * 1000)/ duration_in_milliseconds';只要確保括號中的部分是使用足夠大的整數類型來計算中間結果即可。我會使用'unsigned long',我自己。 –

+0

如果使用整數,舍入的問題就變得很重要。使用浮點數字時,舍入通常會選擇給你(舍入到平常是常見的)。 –

回答

0

我假設你使用的是32位系統,int是32位數據類型。另請考慮舍入整數數據類型

以下是供參考的代碼。

int main() 
{ 
    int bytes_count = 123000; /* total bytes captured */ 
    int time_in_ms = 1300; /* capture end time - start time */ 

    int byte_rate_per_second = (bytes_count * 1000)/ time_in_ms; /* It will round-off as it's integer type*/ 
    int roundoff = ((bytes_count % time_in_ms) * 10)/time_in_ms; /*gives roundoff in one point precision. Use recursion for more precision*/ 
    return 0; 
} 
+0

非常感謝。我覺得這很容易,但不知何故,我沒有想到它。 :) – Tom