3 回答

TA貢獻1865條經(jīng)驗 獲得超7個贊
您為什么擔心結轉(zhuǎn)?只要您測量的持續(xù)時間在24.9天以內(nèi),并且您可以計算相對持續(xù)時間,就可以了。只要您只關心自己那部分運行時間(而不是直接在起點和終點進行小于或大于比較),系統(tǒng)就可以運行多長時間了。即這個:
int before_rollover = Int32.MaxValue - 5;
int after_rollover = Int32.MinValue + 7;
int duration = after_rollover - before_rollover;
Console.WriteLine("before_rollover: " + before_rollover.ToString());
Console.WriteLine("after_rollover: " + after_rollover.ToString());
Console.WriteLine("duration: " + duration.ToString());
正確打?。?/p>
before_rollover: 2147483642
after_rollover: -2147483641
duration: 13
您不必擔心標志位。C#和C一樣,可以讓CPU處理。
在嵌入式系統(tǒng)中,我經(jīng)常遇到這種情況。例如,我永遠不會直接比較beforerollover <afterrollover。我將始終執(zhí)行減法來找到將過渡考慮在內(nèi)的持續(xù)時間,然后根據(jù)該持續(xù)時間進行任何其他計算。
- 3 回答
- 0 關注
- 1388 瀏覽
添加回答
舉報