以毫秒为单位理解位和时间

我正在阅读此页面,其中说 41 位用于使用自定义纪元表示 41 年。

我无法理解以毫秒、位和年为单位的时间之间的关系。任何人都可以帮忙吗?

例如。在 Java 中,System.currentTimeMillis()返回 a long,即64 bits。这是否意味着如果我必须每毫秒生成 1 个,它可以代表 64 年的唯一值?

在上述情况下,41年后会发生什么?如果他们保持相同的方法,他们是否必须增加用于指定的位?

回答

例如。在 Java 中,System.timeinmillis() 返回一个 long,它是 64 位。这是否意味着如果我必须每毫秒生成 1 个,它可以代表 64 年的唯一值?

不,远不止这些。不要忘记,对于您在存储中添加的每一位,您可以存储两倍的值。

2^64 是 18,446,744,073,709,551,616。这就是 64 位整数数据类型中可以保存多少个不同的值。

所以以毫秒精度,那就是:

  • 18,446,744,073,709,551,616 毫秒
  • 18,446,744,073,709,551 秒
  • 307,445,734,561,825 分钟
  • 5,124,095,576,030 小时
  • 213,503,982,334 天
  • 584,542,046 年

也称为“可能比您需要的范围更大”:)


以上是以毫秒为单位理解位和时间的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>