繁体   English   中英

多少年的毫秒时间戳可用41位表示?

[英]How many years of millisecond timestamps can be represented by 41 bits?

我正在看Instagram关于分片ID生成的博客文章 此博客文章描述了生成64位标识符。 他们的机制将64位中的41位分配给毫秒时间戳,他们说:

  • 41位时间(以毫秒为单位)(使用自定义纪元为我们提供41年的ID)

这是拼写错误吗? 我计算出你可以存储41位的69年毫秒时间戳。 这是如何做:

  • 存储在41位中的最大毫秒数:(2 ^ 41)-1 = 2199023255551 ms
  • 除以(1000 * 60 * 60 * 24 * 365)ms /年= 69年

那么,我错在哪里?

你对计算没错。

(2^41)-1 ms
    == 2199023255.551 s
    == 610839.7932086 hr 
    == 25451.65805036 days 
    == 69.6828 Julian years 
    == 69.6843 Gregorian Years

哪个与您的结果密切相关( 69 years )。

但是,您链接到的网站确实说41 bits给出了它们

带有自定义纪元的41年ID

在这种情况下,“Epoch”可能指的是开始日期。 鉴于该文章发表于“3年前”或2012 ,我们可以计算出他们的时代始于2012 + 41 - 69 == 1984 这个日期可能被选为参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM