簡體   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