如何将微秒转换为毫秒,并且可以通过减法比较时间戳? 例如:
int t1 = (int)timeGetTime();
int t2 = (int)timeGetTime()+40;
// now t1 - t2 < 0 which means that t1 < t2.
如果将时间值除以1000,则将此逻辑无效,将微秒转换为毫秒。
修改
我想唯一的解决方案是以微秒为单位存储所有时间戳。转换为毫秒只能在减法后进行到delta值。
答案 0 :(得分:1)
为什么不将millisec值乘以1000,以便以微秒为单位进行比较?或者,使用浮点数代替。
答案 1 :(得分:1)
Windows中时钟定时器的分辨率限制在10毫秒左右,因此您永远无法获得精确到微秒的时间值。
如果您的时间值来自能够达到该分辨率的其他位置,则将值设为微秒。乘以1000或将int除以1000将无法提供更好的分辨率,只会改变比较的比例。
答案 2 :(得分:0)
您需要使用高分辨率计时器才能获得微秒粒度时间。
您可以使用Windows API来检查它的细化程度。
QueryPerformanceFrequency的(安培;的TicksPerSecond); QueryPerformanceCounter的(安培;蜱);
这两个功能将帮助您实现这一目标。请查看MSDN articles了解更多信息。 :)