时钟转换
概览
时钟对象表示一些函数,可将参考时钟时间轴上的所有点映射到时钟对象时间轴上的所有点。一直以来,此函数均表示为分段线性函数。此函数的每个线段都是一维仿射转换,将参考时间轴与时钟时间轴相关联。
时钟对象在任何给定时间仅存储转换的最新片段,而不是整个历史记录。
分段线性函数的分段使用四个数字存储。
- 参考时间轴上的偏移量Roff(64 位)
- 时钟时间轴上的偏移量 Coff(64 位)
- 参考与时钟速率的比率(Rrate/Crate)(32/32 位)
在给定参考时间 r 下,用于应用转换最新片段的函数 C(r) 的计算方式为:
C(r) = (((r - R) * Crate) / Rrate) + Coff
在给定时钟时间 c 的情况下,可以使用 C 的相反值计算参考时间轴 r 上的相应时间。
C-1(c) = r = (((c - Coff) * Rrate) / Crate) + Roff
在缩放偏移值时应注意避免溢出。建议先将乘法的中间结果存储为 96 位,然后再将其拆分为适合 64 位的值。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-03-15。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2024-03-15。"],[],[]]